Странный Flex CallLater x Положение Поведение - PullRequest
0 голосов
/ 26 февраля 2010

Я не уверен, где именно это происходит, но я пытаюсь сделать тикер прокрутки с помощью flex, и он отлично работает, когда на экране есть один из них, но когда их два, случаются странные вещи

Способ, которым я разработал это для обновления в реальном времени, когда дочерний элемент моего hbox исчезает с экрана, я удаляю его и добавляю другого дочернего элемента в конец. Это происходит для сброса позиции Х на hbox, что не так уж и плохо, но также сбрасывает позицию Х любого другого моего hbox на экране. Вот код, который демонстрирует то, что я вижу:

Чтобы использовать это, запустите программу flex, затем щелкните в первом hbox, чтобы установить его положение x для вашей мышиX. Когда позиция x второго hbox (hbox3) будет сброшена, то же будет и позиция первого hbox (hbox2) X.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="addToBoxes()" xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" >
    <mx:Script>
        <![CDATA[
            import mx.controls.Button;
            private const speed:Number = 1;

            private function moveBox3():void{
                box3.move(box3.x + speed, box3.y)
                if(Math.random() > .99 && box3.numChildren > 0)
                    box3.removeChildAt(0)
                callLater(moveBox3) 
            }
            private function addToBoxes():void{
                for(var i:int = 0; i < 8; i++){
                    var a:Button = new Button;
                    box2.addChild(a);
                    a.label = "Box2:" + String(i)
                }
                for(var j:int = 0; j < 8; j++){
                    var b:Button = new Button;
                    box3.addChild(b)
                    b.label = "Box3: " + String(j)
                }
            }

        ]]>
    </mx:Script>

    <mx:HBox id="box2" width="100%" click="box2.x = mouseX" borderStyle="solid"/>
    <mx:HBox id="box3" width="100%" creationComplete="moveBox3()" borderStyle="solid"/>
</mx:Application>

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

1 Ответ

0 голосов
/ 10 марта 2010

Проблема все еще существует, но я нашел вокруг. Для записи я закончил тем, что создал собственный компонент, который обрабатывает прокрутку внутри (также canvas вместо HBox, так что вы можете ссылаться на потомков, и он не прыгает, когда вы удаляетеChild). Я просто поставил два из них на сцену, и это работает достаточно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...