Форум 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)

morkovka 06.10.2009 13:44

Error #1009
 
Привет, подскажите, в чем ошибка. Задаю простецкий код AS3 для кнопки:

Код AS3:

 
stop();
 
function showGraphic(event:MouseEvent):void
{
        gotoAndStop(50);
}
myButton.addEventListener(MouseEvent.CLICK, showGraphic);

Выдает ошибку вывода #1009:Не удается вызвать свойство или метод со ссылкой на объект "null".
at 1_fla::MainTimeline/frame46(). Как исправить?

Castro 06.10.2009 14:13

Instanse name кнопке точно задали?

morkovka 06.10.2009 14:33

задавала точно, проверила уже тыщу раз. Книжками обложилась со всех строн, делаю, как в книжке, должно работать, а толку-нуль

Gal4enochek 06.10.2009 14:41

В каком кадре вы код пишете, и в каком кнопка ваша расположена? Возможно в том кадре, где в пишете код, нет вашей кнопки?

morkovka 06.10.2009 14:56

есть, в 46 кадре код, и кнопка в 46 появляется на своем слое. Может, исходник сбросить?

Gal4enochek 06.10.2009 15:29

было бы неплохо

morkovka 06.10.2009 15:34

http://elenaserova.com/1.zip

Alex Lexcuk 06.10.2009 16:19

Цитата:

Сообщение от morkovka (Сообщение 855788)
задавала точно, проверила уже тыщу раз. Книжками обложилась со всех строн, делаю, как в книжке, должно работать, а толку-нуль


Если в книжке хоть что-то есть про документ класс или про классы вообще, могу подкинуть исходник подобного с классами и рабочий.

morkovka 07.10.2009 00:07

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

etc 07.10.2009 08:15

morkovka, отредактируйте свой первый пост и оформите код тегами [as3][/as3].

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, время: 07:04.

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