2012-03-20 95 views
0

我有一個滾動條(fl.controls.UIScrollBar),它是在一個類中動態創建的,並將其添加到舞臺上。Actionscript 3 - fl.controls.UIScrollBar - 設置scrollPosition不起作用

public class Slider extends Sprite 
{ 
    private var scroll:UIScrollBar = new UIScrollBar(); 
    // etc. 

    // constructor 
    addChild(scroll); 
    scroll.setSize(15.75, 205.3); 
    scroll.direction = ScrollBarDirection.HORIZONTAL; 
    scroll.setScrollProperties(150, minScrollPos, maxScrollPos,snapInterval); 
    scroll.addEventListener(ScrollEvent.SCROLL, scrollHandler); 
} 

然後,我打電話

scroll.scrollPosition = 30; 

我的方法調用不會爲什麼更新滾動thumb.Any想法?

+0

謝謝你,這是偉大的我!新的,我不能推上按鈕。我會盡快收到一些積分。 – 2012-03-21 14:12:32

回答

0

Salut Mihai

我發現起初很奇怪。我預計設定的價值就足夠了。 如果我在一個輸入框循環中設置scrollPosition,它會起作用,但如果我馬上使用setter,則不會。這可能意味着如果您在創建/設置組件後立即進行調用,那麼內部尚未就緒。 UIComponent(如UIScrollBar)有整個生命週期來處理。如果你有興趣的話,Jeff Kamerer對此有一個很好的設置devnet articles

長話短說,該組件沒有準備馬上,所以最好的辦法是通過聽取RENDER事件等待它做好準備:

scroll.addEventListener(Event.RENDER,rendered); 
function rendered(event:Event):void { 
    scroll.removeEventListener(Event.RENDER,rendered); 
    scroll.scrollPosition = 30; 
}