Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как удалить frameListener на главном TimeLine из мувика? (http://www.flasher.ru/forum/showthread.php?t=135166)

wvxvw 19.01.2010 18:15

Эксперементируйте:
http://www.docsultant.com/nemo440/
:)

Psycho Tiger 19.01.2010 19:24

Ого, спасибо)

etc 19.01.2010 19:59

Цитата:

Сообщение от Psycho Tiger (Сообщение 880302)
А в чём?

В инструкции, callpropvoid или callsupervoid. В скорости — никакой. Только в логике разница.

wvxvw 19.01.2010 21:24

бывает что разница не только в этом, например в E4X выражениях там какие-то специальные опкоды есть для нахождения свойств. Или если инлайн функции, то там тоже будет по-разному...

Captain QUAZAR 22.01.2010 21:38

Ребята, вот я попробовал сделать, как я это понимаю, то что вы мне посоветовали.
Создаю главный класс Moover, в нем создаю экземпляры двух моих мувиков – классы Red и Black.
Код AS3:

package{
        import flash.display.*;
        import flash.events.*;
 
        public class Moover extends Sprite{
 
                public function Moover(){
                        var mc1:Black = new Black();
                        var mc2:Red = new Red();
                        mc2.x = 340;
                        mc2.y = 165;
                        mc1.x = 480;
                        mc1.y = 165;
 
                        this.addChild(mc1);
                        this.addChild(mc2);
                        trace(mc1.parent);
                        addEventListener(Event.ENTER_FRAME, frameList);
                        function frameList(e:Event):void{
                                mc1.x-=10;
                                mc2.x-=10;
                                if(mc1.x<-73){
                                        mc1.x = 600;
                                }
                                if(mc2.x<-73){
                                        mc2.x = 600;
                                }
                        }
                }
        }
}

Вот код одного из мувиков, который вроде бы должен удалять ENTER_FRAME у своего родителя – объекта класса Moover.
Код AS3:

package{
        import flash.display.*;
        import flash.events.*;
 
        public class Red extends Sprite{
 
                public function Red(){
                        this.addEventListener(MouseEvent.MOUSE_OVER, overList);
                        function overList(e:MouseEvent):void{
                                super.parent.removeEventListener(Event.ENTER_FRAME, super.parent.frameList);
                        }
                }
        }
}

Но получается такая ошибка:
Цитата:

TypeError: Error #1034: Type Coercion failed: cannot convert global@41d2041 to Function.
at MethodInfo-1()
Я, правда, нашел уже другое решение - удаляю ENTER_FRAME прямо в основ ном классе, т.к. mc1 и mc2 являются его детьми, и по наведению курсора на них фрейм листенер удаляется.:)


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

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