Actionscript 3-fl.controls.UIScrollBar-设置滚动位置不起作用
我有一个滚动条(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
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;
}