Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Фазы события (http://www.flasher.ru/forum/showthread.php?t=168245)

goldlider 18.09.2011 22:34

Фазы события
 
Имеется такой код
Код AS3:

package
{
        import flash.display.*;
        import flash.events.*;
 
        public class EventPhasesDispatch extends Sprite
        {     
 
                public function EventPhasesDispatch():void
                {
                        // Create theSprite
                        var theSprite:Sprite = new Sprite();
                        theSprite.graphics.lineStyle(1);
                        theSprite.graphics.beginFill(0x0000FF, 1);
                        theSprite.graphics.drawRect(0, 0, 50, 50);
                        theSprite.x = 320;
                        theSprite.y = 240;
 
                        // Create theSprite2
                        var theSprite2:Sprite = new Sprite();
                        theSprite2.graphics.lineStyle(1);
                        theSprite2.graphics.beginFill(0x00FF00, 1);
                        theSprite2.graphics.drawRect(0, 0, 25, 25);
 
                        theSprite.addChild(theSprite2);
                        stage.addChild(theSprite);
 
                        theSprite.stage.addEventListener(MouseEvent.CLICK, mouseClickListener, false);
                }
 
                private function mouseClickListener(e:MouseEvent):void
                {
                          trace("Click");
                }
        }
}

Почему, когда в слушателе событий третий параметр стоит в true, щелкая по стейджу, в Output не выводится сообщение ?

DJDrugsounD 18.09.2011 22:40

http://help.adobe.com/ru_RU/FlashPla...ispatcher.html

goldlider 18.09.2011 22:44

DJDrugsounD, я читал Help. И знаю, что означает параметр true в слушателе события. Мне не понятно почему stage являясь получателем события, нереагирует на событие, т.е. в моем случае не выводит сообщение Click.

Genm 18.09.2011 23:48

http://blog.hanpo.tw/2011/01/event-f...e-true-or.html
Вот тут хорошо все показано и рассказано

goldlider 19.09.2011 23:14

Genm, спасибо за ссылку очень помогло.
Что вообще означает дословно на русском языке данное выр-е: Capture Phase of Event Flow didn't process Listener(mc) ?

Psycho Tiger 20.09.2011 01:07

Оно означает, что подписывашись на фазу захвата сам объект-подписчик (тот, который сделал addEventListener) событие не получит.

goldlider 20.09.2011 10:08

Psycho Tiger, я не догнал такой момент, если приемник зарегистрирован в потомке(mc) при установленом useCapture = true, и предок(stage) является получателем события. Почему предок(stage) вообще не получает уведомление о возникшем событии на фазе захвата ?

Psycho Tiger 20.09.2011 18:15

Мне тяжело мыслить в таком ключе )
Накидайте схематично пример кодом и я скажу.

goldlider 20.09.2011 18:25

Psycho Tiger, приведу тот же пример, что мне показал выше Genm. На 8-ом скриншоте, почему кликая по стейджу, функция не срабатывает ?

alatar 20.09.2011 19:24

Потому, что листенер добавлен к mc и до него событие вообще не доходит. Не важно какая фаза обрабатывается. Ситуация ничем не отличается от 6-го скриншота.


Часовой пояс GMT +4, время: 16:06.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.