Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не работает перослушиваель события knopka.addEventListener(MouseEvent.MOUSE_DOWN,..) (http://www.flasher.ru/forum/showthread.php?t=122975)

helgboy 22.03.2009 01:31

Не работает перослушиваель события knopka.addEventListener(MouseEvent.MOUSE_DOWN,..)
 
Пожалуйста, помогите разобраться с кнопкой которая реагирует на клик мышкой.
В библиотке создана кнопка, instant name - knopka

реализован следующий код
Код AS3:

dynamic public class Cod extends MovieClip {;
        public function Cod():void {
                stage.addEventListener(KeyboardEvent.KEY_DOWN, keyboard);
                addEventListener(Event.ENTER_FRAME, reaction);
                knopka.addEventListener(MouseEvent.MOUSE_DOWN, mouse);
 
        }

при компиляции выдает ошибку
Не удается вызвать свойство или метод со ссылкой на объект "null".
Ткните пожалуйста носом туда где я не так что-то сделал.


P.S.
Если сделать так, то все работает но не реагирует естественно на нажатие именно на "knopka"
Код AS3:

dynamic public class Cod extends MovieClip {;
        public function Cod():void {
                stage.addEventListener(KeyboardEvent.KEY_DOWN, keyboard);
                addEventListener(Event.ENTER_FRAME, reaction);
                stage.addEventListener(MouseEvent.MOUSE_DOWN, mouse);
 
        }


Fatality 22.03.2009 01:43

Клип "knopka", недоступен в области видимости этого класса. Класс Cod - ваш DocumentClass ?

helgboy 22.03.2009 02:02

Я не знаю я еще совсем новичек... мне при создании самой кнопки необходимо ставить галочку Export for Action Script? Или я не в том направлении думаю?

wvxvw 22.03.2009 03:43

>> В библиотке создана кнопка, instance name - knopka
так кнопка в библиотеке или на сцене? (если вы создаете кнопку только в библиотеке, но не помещаете экземпляр кнопки на сцену, то instance name вам указывать негде - что вы сможете указать - так это name, class и base class). Указывая класс вы позволяете в дальнейшем использовать этот библиотечный символ динамически - т.е. создавать его програмно. Но вы так же можете создать его перетащив на сцену (и на сцену любого другого символа). Если этот символ уже на сцене - то вы сможете указать его instance name - весьма бесполезный атрибут т.как единственная его "полезность" заключается в том, что по умолчанию Флеш создаст в клипе содержащем этот символ internal переменную с таким же именем. На мой взгляд практичнее пользоваться getChildByName("childName") а не генерить названия переменных автоматически - и это по двум причинам: класс, который привязан к конкретным символам не удобно использовать повторно. А так же не удобно, когда в коде нет объявления переменных.

^
И как относится класс Cod к вашему FLA?

helgboy 22.03.2009 14:36

Class: main.Cod

и knopka уже на сцене

wvxvw 22.03.2009 15:34

ОК... поставим вопрос по-другому: как вы хотите, чтобы класс Cod относился к вашему FLA:
- document class.
- привязан к какому-то из символов в библиотеке
- не первое и не второе, экземпляры класса создаются динамически и не привязаны к библиотечным символам.

helgboy 22.03.2009 16:25

document class

Помогите пожалуйста разобраться я понимаю что вопрос простой и может быть не стоит внимания, но все же .. уже 2 дня в 3 соснах блуждаю...

wvxvw 22.03.2009 19:12

Вложений: 1
Когда вы пишете имя класса в выделенном нижнем поле не появляется такое сообщение?
Если да, то прочитайте, что там написано и сделайте так, чтобы оно больше не появлялось :)

helgboy 22.03.2009 20:12

я работаю в flash cs4
установки pleer 10
as3

имя класса было уже давно написано... пробовал менять такого окна не появляется

http://tibet.at.ua/as3.jpeg

Мне в simbol prorties моей кнопки нужно ставить галочку Export for action script ???

wvxvw 22.03.2009 20:29

тогда такой вопрос: в папке с FLA есть папка main? Класс Cod находится в ней? Cod.as начинается так:
Код AS3:

package main {
public class Cod extends MovieClip {
....

?


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

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