Странное поведение слушателя событий / потока событий - PullRequest
0 голосов
/ 03 июля 2011

В следующем коде, если я нажму на кнопку, будут вызваны все три функции. Но во всех остальных случаях срабатывает только этап. Почему событие «спрайт» не сработало?

public class EventFlowTest extends Sprite
{
    private var button:Sprite;

    public function EventFlowTest()
    {
        addEventListener(Event.ADDED_TO_STAGE, init);

    }
    private function init(e:Event = null):void
    {
        stage.addEventListener(MouseEvent.MOUSE_DOWN,stageMouseDown,false);


        graphics.beginFill(0x11);
        graphics.drawCircle(100,100,100);
        addEventListener(MouseEvent.MOUSE_DOWN,spriteMouseDown,false);          


        button=new Sprite();
        addChild(button);

        button.graphics.beginFill(0xF1);
        button.graphics.drawCircle(100,100,10);
        button.addEventListener(MouseEvent.MOUSE_DOWN,buttonMouseDown,false);
    }

    private function spriteMouseDown(e:MouseEvent):void
    {
        trace("sprite");
    }

    private function stageMouseDown(e:MouseEvent):void
    {
        trace("stage");
    }

    private function buttonMouseDown(e:MouseEvent):void
    {
        trace("button");
    }

}

Ответы [ 2 ]

1 голос
/ 04 июля 2011

Объяснение: «Векторная графика игнорируется в экземпляре основного класса» (взаимодействие с мышью) http://books.google.ru/books?id=gUHX2fcLKxYC&lpg=PA533&ots=cvPZ0qbQv8&dq=Vector%20graphics%20ignored%20in%20main-class%20instance&pg=PA533#v=onepage&q=Vector%20graphics%20ignored%20in%20main-class%20instance&f=false

0 голосов
/ 04 июля 2011

это странно ... такое поведение происходит, когда ваш тестовый класс является классом документа. Если вы встраиваете свой тест в класс документа, все работает правильно. У меня нет объяснения этому поведению.

package {
    import flash.display.Sprite;

    public class Main extends Sprite {
        public function Main() {
            var test : EventFlowTest = new EventFlowTest();
            addChild(test);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...