Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   не диспатичится customEvent (http://www.flasher.ru/forum/showthread.php?t=157950)

tonnon 13.06.2011 03:52

не диспатичится customEvent
 
Код AS3:

package
{
        import flash.display.MovieClip;
 
        public class Test extends MovieClip
        {       
                public function Test()
                {
                        dispatchEvent(new CustomEvent(CustomEvent.TROLOLO));       
 
                }
        }
}

Код AS3:

package
{
        import flash.display.Sprite;
 
        public class Main extends Sprite
        {       
                public function Main()
                {
                        addEventListener(CustomEvent.TROLOLO, onTroll)
                        addChild(new Test())
 
                }
                private function onTroll(e:CustomEvent):void{
                        removeChild(e.target as MovieClip);
                        trace ('!')
                }
        }
}

Код AS3:

package {
        * *
        * *import flash.events.Event;
        *
        * *public class CustomEvent extends Event {
                * * *
                      public static const TROLOLO:String = 'trololo!';
                * * *
                * * * public var arg:*;
                * * *
                * * * public function CustomEvent(type:String, customArg:*=null,
                                                                                  bubbles:Boolean=true,
                                                                                cancelable:Boolean=false) {
                        * * * * *
                        * * * * *super(type, bubbles, cancelable);
                        * * * * *
                        * * * * *this.arg = customArg;
                        * * * * *
                * * * }
                * * * * * *
                * * * public override function clone():Event {
                        * * * * *return new CustomEvent(type, arg, bubbles, cancelable);
                * * * }
                * * *
                * * * public override function toString():String {
                        * * * * *return formatToString("CustomEvent", "type", "arg",
                                * * * * * * * * * * * * * * * *"bubbles", "cancelable", "eventPhase");
                * * * }
                * *
        * *}
        *
}


Bgg 13.06.2011 03:54

Бублинг забыли.

tonnon 13.06.2011 03:58

bubbles:Boolean=true ?

Bgg 13.06.2011 04:04

Угу, раз слушаете на контейнере, то событие должно всплыть до этого контейнера. Хотя в вашем случае наверно не получится услышать. Сначала отработает конструктор, а потом добавится экземпляр вашего Test в дисплей лист.

При добавлении в список отображения визуальные объекты и так шлют событие ADDED_TO_STAGE. Его можно отловить в самом Test и послать кастомное событие.

tonnon 13.06.2011 04:13

да, так оно и получается -- событие не проскакивало, потому что экземпляр класса не был добавлен на сцену к тому моменту, как отправлялось событие. спасибо!

fish_r 13.06.2011 04:27

а что за звездочки у вас в коде? украшение что ли какое-то?

tonnon 13.06.2011 04:30

это парсер так пробелы преобразовал )


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

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