0

我开始满怀热情地讨厌 fl.controls.*。

我想要做的就是在滚动条设置为它的滚动目标的动态文本字段获得大量文本时启用滚动条。这很简单,但我无法让它工作。我曾尝试在 TextField 上监听滚动事件,然后启用 UIScrollBar,但由于某种原因,它会导致整个屏幕变黑。这很奇怪。

动态 TextField 和 UIscrollBar 都在我加载的 swf 的时间线上。我尝试在 Flash 和 Actionscript 中设置 UIScrollBar 的 scrollTarget 属性。如果您有解决此问题的方法,请告诉我。

我认为我发现的最佳解决方案是不在 fl.controls 中使用类。:/

4

1 回答 1

0

adobe docs上有一个很好的例子。
您可能缺少的行是。

mySb.scrollTarget = myTxt;

请注意,如果您使用 flash,则需要将 UIScrollBar 的实例拖到库中。

import flash.net.URLLoader; 
import  fl.controls.UIScrollBar;
import flash.events.Event; 

var myTxt:TextField = new TextField(); 
myTxt.border = true; 
myTxt.width = 200; 
myTxt.height = 16; 
myTxt.x = 200; 
myTxt.y = 150; 

var mySb:UIScrollBar = new UIScrollBar(); 
mySb.direction = "horizontal"; 
// Size it to match the text field. 
mySb.setSize(myTxt.width, myTxt.height);  

// Move it immediately below the text field. 
mySb.move(myTxt.x, myTxt.height + myTxt.y); 

// put them on the Stage 
addChild(myTxt); 
addChild(mySb); 
// load text 
var loader:URLLoader = new URLLoader(); 
var request:URLRequest = new URLRequest("http://www.helpexamples.com/flash/lorem.txt"); 
loader.load(request); 
loader.addEventListener(Event.COMPLETE, loadcomplete); 

function loadcomplete(event:Event) { 
    // move loaded text to text field 
    myTxt.text = loader.data; 
    // Set myTxt as target for scroll bar. 
    mySb.scrollTarget = myTxt; 
}
于 2011-09-16T19:05:26.433 回答