Проблема с прокруткой компонента UIScrollBar внутри класса

Я пытаюсь прикрепить экземпляр компонента UIScrollbar к динамическому текстовому полю внутри экземпляра класса, который создается после загрузки некоторого XML. Компонент полосы прокрутки прикрепляется должным образом, поскольку размер ползунка зависит от количества содержимого в текстовом поле, однако он не будет прокручиваться.

Вот код:

function xmlLoaded(evt:Event):void
{   
    //do some stuff

    for(var i:int = 0; i < numProfiles; i++)
    {
        var thisProfile:profile = new profile();

        thisProfile.alpha = 0;
        thisProfile.x = 0;
        thisProfile.y = 0;
        thisProfile.name = "profile" + i;

        profilecontainer.addChild(thisProfile);

        thisProfile.profiletextholder.profilename.htmlText = profiles[i].attribute("name");
        thisProfile.profiletextholder.profiletext.htmlText = profiles[i].profiletext;

        //add scroll bar
        var vScrollBar:UIScrollBar = new UIScrollBar();
        vScrollBar.direction = ScrollBarDirection.VERTICAL;
        vScrollBar.move(thisProfile.profiletextholder.profiletext.x + thisProfile.profiletextholder.profiletext.width, thisProfile.profiletextholder.profiletext.y);
        vScrollBar.height = thisProfile.profiletextholder.profiletext.height;
        vScrollBar.scrollTarget = thisProfile.profiletextholder.profiletext;
        vScrollBar.name = "scrollbar";
        vScrollBar.update();
        vScrollBar.visible = (thisProfile.profiletextholder.profiletext.maxScrollV > 1);

        thisProfile.profiletextholder.addChild(vScrollBar);

        //do some more stuff
    }
}

Я также пробовал это с компонентом UIScrollBar в самом клипе/классе, и он все еще не работает. Любые идеи?


person Community    schedule 11.09.2008    source источник


Ответы (3)


Вы можете попробовать добавить полосу прокрутки, как только ваше текстовое поле будет инициализировано из отдельной функции, подобной этой:

private function assignScrollBar(tf:TextField, sb:UIScrollBar):void {
    trace("assigning scrollbar");
    sb.move(tf.x + tf.width, tf.y);
    sb.setSize(15, tf.height);
    sb.direction = ScrollBarDirection.VERTICAL;
    sb.scrollTarget = tf;
    addChild(sb);
    sb.update();         
}

Вот как я это делаю в настоящее время.

person defmeta    schedule 16.09.2008

Вы пытались поместить полосу прокрутки пользовательского интерфейса на сцену, привязать ее к текстовому полю во время разработки, а затем вызвать update() во время загруженного события?

В прошлом у меня был интересный опыт динамического создания полос прокрутки пользовательского интерфейса во время выполнения.

person Jeff Winkworth    schedule 11.09.2008

В первом примере вы пытались поместить оператор vScrollBar.update(); после оператора addChild(vScollbar); ?

person defmeta    schedule 16.09.2008