Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Error #1009 (http://www.flasher.ru/forum/showthread.php?t=130818)

Alex Lexcuk 07.10.2009 10:32

Цитата:

Сообщение от morkovka (Сообщение 856003)
Если не трудно, сбросьте, пожалуйста. В книжке про классы есть, там про все есть. Книжка Adobe Программирование ActionScript 3.0, хорошая, но без помощи профессионалов мне не разобраться:-(

http://www.murmadillo.tut.su/m/timeLineMove.rar

Документ класс док.
Расширяем класс SimpleButton, получаем DispatchUintSimBtn, при нажатии на эту расширенную кнопку шлется событие на сцену
Код AS3:

stage.dispatchEvent(new LexEvent('gotoFrame',{frame:gotoFrame}));

те. где бы кнопка не была событие пошлется все равно при ее нажатии.
теперь в поле класс SimpleButtona (в библиотеке на нарисованной кнопке правой кнопочкой пункт линкаже) можно написать Sim46_47 и создать в папке файл такого содержания

Код AS3:

package{
        public class Sim46_47 extends DispatchUintSimBtn{
                public function Sim46_47():void{
                        super(47);//вызов родительского конструктора
                                            //при нажатии пошлется событие 'gotoFrame' c
                                            //параметром 47
                }
        }
}

конструкторе класса DispatchUintSimBtn есть параметр, этот параметр будет диспатчется при нажатии на кнопку.

в документ классе Doc это событие с параметром и ловим
Код AS3:

package {
        import flash.display.*;
        import flash.events.*;
        import flash.text.*;
 
        public class Doc extends MovieClip{;
 
                public function Doc(){
                        addFrameScript(44,funcStop);//останов на 44 кадре
 
                        //ловить свое же событие, от нажатия кнопки
                        stage.addEventListener('gotoFrame',gotoFrameHandler);
 
                        //просто индикатор текущего кадра, на сцену в нарисованное пле txt
                        addEventListener(Event.ENTER_FRAME, enterFrameHandler);
                }
 
                private function enterFrameHandler(evt:Event):void{
                        txt.text = ''+currentFrame;
                }
 
                private function funcStop() {//останов на 44 кадре
                        stop();//останов на 44 кадре
                }//останов на 44 кадре
 
                private function gotoFrameHandler(evt:LexEvent):void{
                        gotoAndPlay(evt.params.frame);
                }
 
        }
}


dimarik 07.10.2009 11:08

morkovka, не все смогли купить CS4 и пользуются старым добрым Flash CS3. Если хотите, чтобы Вам помогли, залейте вашу нетленку в формате CS3.

morkovka 09.10.2009 00:28

Alex Lexcuk, огромное спасибо. О-о-очень помогли:-) Буду разбираться.

Добавлено через 16 минут
По просьбе от dimarika сохранила ролик в CS3, протестировала, и он работает!. Только анимация движения стала покадровой анимацией. Ссылка на файл: http://elenaserova.com/2.zip Буду все же разбираться с ошибками в CS4.


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

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