我开始讨厌fl.controls。*充满激情。
我想要做的就是当滚动条设置为动态TextField时滚动条启用,因为其scrollTarget获取了很多文本。这很简单但我无法让它工作。我已经尝试在TextField上侦听滚动事件然后启用UIScrollBar但是由于某种原因它导致整个屏幕闪烁黑色。这很奇怪。
动态TextField和UIscrollBar都在我加载的swf的时间轴上。我已经尝试在Flash和Actionscript中设置UIScrollBar的scrollTarget属性。如果你有解决这个问题的方法,请告诉我。
我认为我找到的最佳解决方案是不在fl.controls中使用类。 :/
答案 0 :(得分: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;
}