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

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

udaaff 27.07.2015 21:27

Вложений: 1
Цитата:

Сообщение от Freeman (Сообщение 1185289)
IDE IntelliJ IDEA 14.1.3
Flex SDK 4.6
JDK 1.8

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

Вложение 31724

Freeman 30.07.2015 17:14

http://cs625421.vk.me/v625421186/3e513/Gq4vZDBRVqo.jpg

trace(Capabilities.version); == "WIN 11,1,102,58"

GBee 30.07.2015 17:29

Компайлер опшенс?

Freeman 30.07.2015 18:42

Цитата:

Сообщение от GBee (Сообщение 1185345)
Компайлер опшенс?

http://cs625421.vk.me/v625421186/3e51d/WDHG5oR1WjM.jpg

caseyryan 30.07.2015 18:45

Edit?

Freeman 30.07.2015 19:06

Цитата:

Сообщение от caseyryan (Сообщение 1185347)
Edit?

В Edit список переменных к Классам и папкам SDK, не более..

Wolsh 30.07.2015 20:54

Цитата:

trace(Capabilities.version); == "WIN 11,1,102,58"
Тогда что непонятно?
Цитата:

Эта константа существует с версии 11.2

Freeman 30.07.2015 23:38

Цитата:

Сообщение от Wolsh (Сообщение 1185349)
Тогда что непонятно?

Исходя из всего, понятно.
Но среда имеет данную константу, а плеер её не видит. Следовательно "компиляция" ведётся под версию 11, а надо в большую.

Интересно, это зависит от SDK или от настроек, коих у меня по сравнению с вышепоказанным скрином от udaaff, нет?.. почему же только.. Быть может SDK урезанный, возможно скачал не то?

ЗЫ: Сначала мне показалось, что "WIN 11", это текущая версия ОС, а не платформа.

udaaff 31.07.2015 00:25

Вложений: 1
Вложение 31728

Wolsh 31.07.2015 00:47

Так, давайте-ка немного проясним.
Вы утверждали, что "в среде разработки все работает как надо".
Если так, то компиляция происходит правильно, и плеер, который запускает для отладки среда разработки — правильный, то есть 11.2 или старше.
Приведенный трейс (про 11.1) был получен в среде разработки или при тестировании в браузере? Ошибка происходит там же, где был получен этот трейс?
[а то я уже сам немного запутался в Ваших показаниях]

Freeman 31.07.2015 01:22

Цитата:

Сообщение от udaaff (Сообщение 1185351)

При создании проекта (единственное где обнаружил версию) указано 11.1..
Спасибо за то, что показали ещё вариант обнаружения проблемы. (Новых проектов не создавал давно, поэтому данный диалог упустил из виду, каюсь).

Цитата:

Сообщение от Wolsh (Сообщение 1185352)
Так, давайте-ка немного проясним...

Из всего что стало известно, и мне не по себе.
Исходя из того, что единственным вариантом при создании проекта, является версия 11.1 и вашим утверждением:
Цитата:

Сообщение от Wolsh (Сообщение 1185349)
Эта константа существует с версии 11.2

происходит диссонанс ))

И так, уточняющие данные:
В IDE, эта константа есть и при тесте IDEшным плеером, всё ловится.
При тесте плеером установленным в системе, версии 18, аналогично в браузере, при том же плеере(18), выскакивает ошибка.

Возникает вопрос, каааак?)
И если не сложно, подскажите источник Flex SDK, с которым лично у вас нет проблем с выбором версии. Возможно данная проблема наконец исчезнет.

PS: При создании проекта type Application, нельзя выбрать версию. Под какую в итоге оно компилится?

udaaff 31.07.2015 01:31

Вложений: 1
Вы создаете десктопный проект.

Вложение 31729

Freeman 03.08.2015 13:20

Нет нет, именно Web и список версий выпадающий, действующий, но с одной версией.

Добавлено через 23 минуты
установил Apache Flex и всё исправилось.. Спасибо всем!

udaaff 05.08.2015 19:56

Цитата:

Нет нет, именно Web
Иконка конфигурации говорит об обратном.
http://www.flasher.ru/forum/showpost...4&postcount=12

Приложение у вас работало как ожидалось в "идее", потому что запускалось в air рантайме во время тестирования, и не работало, т.к. вы брали swf из десктопного проекта и запускали его во флеш плеере. То же, что вы и делаете, видимо, сейчас в другой теме.


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

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