Actionscript 3-fl.controls.UIScrollBar-设置滚动位置不起作用

Actionscript 3-fl.controls.UIScrollBar-设置滚动位置不起作用,actionscript,Actionscript,我有一个滚动条(fl.controls.UIScrollBar),我在一个类中动态创建它,并将其添加到后台 public class Slider extends Sprite { private var scroll:UIScrollBar = new UIScrollBar(); // etc. // constructor addChild(scroll); scroll.setSize(15.75, 205.3); scroll.dire

我有一个滚动条(fl.controls.UIScrollBar),我在一个类中动态创建它,并将其添加到后台

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;
我的方法调用不会更新滚动拇指。知道为什么吗?

向Mihai致敬

起初我觉得很奇怪。我希望设置该值就足够了。 如果我在enterframe循环中设置scrollPosition,它会工作,但如果我直接使用setter,它就不会工作。这可能意味着,如果您在创建/设置组件之后立即进行调用,那么在内部,组件还没有准备好。UIComponents(如UIScrollBar)需要处理整个生命周期。如果你有兴趣的话,杰夫·卡梅勒在这方面有一套很好的方法

长话短说,组件尚未立即准备就绪,因此最好是通过收听事件等待组件准备就绪:


谢谢,太棒了!我是新来的,我不能按向上按钮。我会的,只要我得到一些分数。
scroll.addEventListener(Event.RENDER,rendered);
function rendered(event:Event):void {
    scroll.removeEventListener(Event.RENDER,rendered);
    scroll.scrollPosition = 30;
}