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

Termin 30.05.2011 18:35

Детсадский пример, помогите разобраться
 
Помогите разобраться в логике, что тут не так? Вот прописал простейший класс с использованием ранее создонного как понятно в ниже прописанном коде. Слушает события клика мыши.

Код AS3:

public class moveBoll extends Sprite
        {
                private var boll:Boll
 
                public function moveBoll()
                {
                    addEventListener(MouseEvent.CLICK, clickMove)
                }
                private function clickMove (e:MouseEvent):void
                {
                        boll = new Boll
                        boll.x = stage.mouseX
                        boll.y = stage.mouseY
                        stage.addChild(boll)
                }
        }

Тут кусочек кода из основного класса...
Код AS3:

private function init(e:Event = null):void 
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        circle = new moveBoll
                        addChild(circle)
                }

Вопрос, чего не хватает??? При компиляции, элемент при клике не добавляется на сцену, если же просто в классе moveBoll убрать слушатель событий, то прописав координаты вручную то все добавиться...

Kidd002 30.05.2011 19:04

Проблема здесь:
Код AS3:

addEventListener(MouseEvent.CLICK, clickMove);

Если в moveBoll нет никакой графики, то и нажимать не на что. Но это ограничение не касается stage.
Внутри moveBoll подпишись на событие добавления на stage Event.ADDED_TO_STAGE и в обработчике пропиши
Код AS3:

stage.addEventListener(MouseEvent.CLICK, clickMove);

+Классы лучше начинать с заглавной буквы.
+В конце каждого выражения желательно добавлять точку с запятой.

Termin 30.05.2011 19:24

Да, забыл сказать что когда пищу так:
Код AS3:

stage.addEventListener(MouseEvent.CLICK, clickMove);

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

КорДум 30.05.2011 19:25

Дожидайтесь добавления на сцену.
ЗЫ. сейчас тему прикроют за название.

Wolsh 30.05.2011 19:26

Название темы не отражает сути вопроса.


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

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