Actionscript 3 - fl.controls.UIScrollBar - настройка scrollPosition не работает - PullRequest
0 голосов
/ 20 марта 2012

У меня есть полоса прокрутки (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;

Мой вызов метода не обновит большой палец прокрутки. Есть идеи, почему?

1 Ответ

0 голосов
/ 21 марта 2012

Салют Михай,

Сначала я нашел это странным.Я ожидал, что установки значения будет достаточно.Если я установлю scrollPosition в цикле ввода кадра, это будет работать, но не тогда, когда я сразу использую сеттер.Это, вероятно, означает, что если вы делаете вызовы сразу после создания / настройки компонента, он еще не готов.UIComponents (например, UIScrollBar) имеют целый жизненный цикл, чтобы иметь дело с.У Джеффа Камерера есть хороший набор статей devnet на эту тему, если вам интересно.

Короче говоря, компонент не готов сразу, поэтому лучше всего подождатьчтобы быть готовым к прослушиванию события RENDER :

scroll.addEventListener(Event.RENDER,rendered);
function rendered(event:Event):void {
    scroll.removeEventListener(Event.RENDER,rendered);
    scroll.scrollPosition = 30;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...