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

Freeman 26.07.2015 23:16

Ошибка при добавлении листенера
 
Здравствуйте, возникла проблема.

выдаёт ошибку:
Код:

TypeError: Error #2007: Parameter type must be non-null.
        at flash.events::EventDispatcher/addEventListener()
        at components.bases::b_CheckBox/Listers()[D:\Projects\Programming\AS3 и Flash\Тренировки\omni_components\src\components\bases\b_CheckBox.as:262]
        at components.bases::b_CheckBox()[D:\Projects\Programming\AS3 и Flash\Тренировки\omni_components\src\components\bases\b_CheckBox.as:78]
        at components::CheckBox/set text()[D:\Projects\Programming\AS3 и Flash\Тренировки\omni_components\src\components\CheckBox.as:81]
        at components::CheckBox()[D:\Projects\Programming\AS3 и Flash\Тренировки\omni_components\src\components\CheckBox.as:55]
        at Main()[D:\Projects\Programming\AS3 и Flash\Тренировки\omni_components\src\Main.as:17]

при добавлении листенера:
Код AS3:

collisionLayer.addEventListener(MouseEvent.MIDDLE_CLICK, onMClick);

Не хотелось бы отказываться от кнопок, не убедившись в невозможности решения.

Найдена отладочным плеером, после молчаливого отказа в обычном.

Wolsh 26.07.2015 23:59

Скорее всего, компилите под версию плеера, не поддерживающую среднюю кнопку.

Freeman 27.07.2015 00:35

Цитата:

Сообщение от Wolsh (Сообщение 1185274)
Скорее всего, компилите под версию плеера, не поддерживающую среднюю кнопку.

Версии:
В браузере Chrome::Google = 18,0,0,209
Отладочный SA плеер = 18 и 13 версии

В отладке IntelliJIDEA всё работает, в браузере уже нет..

добавлено в 23:53
Возможно нужен какой-то спец.плеер, но я пишу с учётом на среднестатистический браузер и даже не знаю, поддерживают ли плеера кнопки кроме первой..

meiciuc 27.07.2015 10:08

а по-моему проблема в кастомном классе - b_CheckBox - at components.bases::b_CheckBox/Listers()

я бы протрейсил все объекты поминаемые внутри этого метода - похоже, где-то какой-то объект на момент вызова метода не существует еще

Wolsh 27.07.2015 10:28

meiciuc, приведена конкретная ошибка — на момент подписки, то есть при вызове addEventListener, параметр type == null, то есть константа MouseEvent.MIDDLE_CLICK не определена.
Эта константа существует с версии 11.2, и по-идее ошибка должна возникать только в более ранних версиях плеера.

AlexCooper 27.07.2015 10:38

Код AS3:

collisionLayer.addEventListener(MouseEvent.MIDDLE_CLICK, onMClick);

Код AS3:

collisionLayer.addEventListener('middleClick', onMClick);


illuzor 27.07.2015 14:32

Цитата:

Версии:
В браузере Chrome::Google = 18,0,0,209
Отладочный SA плеер = 18 и 13 версии
Это версии плееров, в которых запускаете. А компилите под какую?

Freeman 27.07.2015 19:17

IDE IntelliJ IDEA 14.1.3
Flex SDK 4.6
JDK 1.8

Явных настроек версий не нашел.

Код AS3:

collisionLayer.addEventListener('middleClick', onMClick);

- не вызывает ошибок, но и функционала тоже.
В IDEA работает аналогично константной.

illuzor 27.07.2015 19:43

Можно указать в параметрах компилятора
Цитата:

-swf-version 29
Список возможных версий

caseyryan 27.07.2015 20:32

Цитата:

Сообщение от Freeman (Сообщение 1185289)
IDE IntelliJ IDEA 14.1.3
Явных настроек версий не нашел.

Код AS3:

trace(Capabilities.version);

Вообще прям мистика какая-то. Неплохо бы выложить какой-то минимальный пример, чтобы можно было воспроизвести. Уже скомпилированную флешку и отдельно код


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

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