fl.controls.UIScrollBar для TextField не включается при добавлении текста - PullRequest
0 голосов
/ 16 сентября 2011

Я начинаю ненавидеть fl.controls. * Со страстью.

Все, что я хочу сделать, это включить полосу прокрутки, когда динамическое TextField, полоса прокрутки установлена, так как ее scrollTarget получает много текста. Это очень просто, но я не могу заставить его работать. Я попытался прослушать событие прокрутки на TextField, чтобы затем включить UIScrollBar, но по какой-то причине весь экран мигает черным. Это очень странно.

Динамические TextField и UIscrollBar находятся на временной шкале SWF, который я загружаю. Я попытался установить свойство scrollTarget UIScrollBar во Flash, а также в ActionScript. Если у вас есть решение этой проблемы, дайте мне знать.

Я думаю, что лучшее решение, которое я нашел, это не использовать классы в fl.controls. : /

1 Ответ

0 голосов
/ 16 сентября 2011

Был хороший пример на 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; 
}
...