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

MIHAnik 29.07.2011 15:53

Проигрывание Мовиклипа после навода курсора.
 
Вот пакет

Код AS3:

package{
        import flash.display.Sprite
        import flash.events.MouseEvent;
        public class PointType extends Sprite {
                private var Image:ImageClass
                function PointType(){
                        for (var i:int=20;i<300;i+=30){
                                for (var j:int=20;j<300;j+=30){
                                        var Image = new ImageClass();
                                        addChild(Image)
                                        Image.x=i
                                        Image.y=j
                                        Image.addEventListener(MouseEvent.MOUSE_MOVE, playAnimation);       
                                }
                        }
                }       
                private function playAnimation(event:MouseEvent):void {
                        trace("input")
                        Image.play();//ПРОБЛЕМНОЕ МЕСТО               
                }
        }
}

Проблема в проигрыше мовиклипа Image.
Трейс срабатывает а дальше ошибка
Код:

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
        at PointType/playAnimation()

Вродь по примеру делаю. Я так понимаю он имейдж не может найти, не знаю как в функцию на него ссылку дать.

DaFive 29.07.2011 15:56

У вас Image объявлена как переменная класса и как локальная переменная в конструкторе.
Переменная класса объявлена, но не создан объект. Поэтому null.

На вашем месте назвал бы локальную переменную по-другому.

Добавлено через 1 минуту
Или просто убрать var в конструкторе и поменять в playAnimation на e.target.play();

Код AS3:

package{
        import flash.display.Sprite
        import flash.events.MouseEvent;
        public class PointType extends Sprite {
                private var Image:ImageClass
                function PointType(){
                        for (var i:int=20;i<300;i+=30){
                                for (var j:int=20;j<300;j+=30){
                                        Image = new ImageClass();
                                        addChild(Image)
                                        Image.x=i
                                        Image.y=j
                                        Image.addEventListener(MouseEvent.MOUSE_MOVE, playAnimation);       
                                }
                        }
                }       
                private function playAnimation(event:MouseEvent):void {
                        trace("input")
                        e.target.play();
                }
        }
}


MIHAnik 29.07.2011 16:06

DaFive, хмм, возник вопрос. Почему именно е? Его нужно объявить? Выскакивает ошибка об отсутствии е.

DaFive 29.07.2011 16:08

Ну точнее event -> event.target.play(); - это параметр функции playAnimation. Прочитайте какие свойства и методы есть у эвента - там много чего интересного.

MIHAnik 29.07.2011 16:27

DaFive, Благодарю, ошибки нет! :) Про эвент зачитаю ;)
Зы: а тут можно репу набивать?)

DaFive 29.07.2011 16:32

Можно набивать весами над сообщением:)

MIHAnik 29.07.2011 16:36

О понял спасыб))


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

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