fl.controls.UIScrollBar for TextField在添加文本时不启用

时间:2011-09-16 16:04:08

标签: flash actionscript-3 scroll flash-cs5 dynamic-text

我开始讨厌fl.controls。*充满激情。

我想要做的就是当滚动条设置为动态TextField时滚动条启用,因为其scrollTarget获取了很多文本。这很简单但我无法让它工作。我已经尝试在TextField上侦听滚动事件然后启用UIScrollBar但是由于某种原因它导致整个屏幕闪烁黑色。这很奇怪。

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

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

1 个答案:

答案 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; 
}