Ошибка AS3 1067 (неявное принуждение) при попытке addEventListener

Итак, я разрабатываю сортировочную игру для геймджема, и мои навыки работы с AS3 все еще немного несовершенны.

У меня есть InputManager.as, который определяет, является ли устройство сенсорным или нет, а затем в классах, которым это нужно, захватывая эту информацию.

У меня проблема:

C:\GameDev\Progressive Bytes\Dan\Scripts\Screens\Buttons.as, строка 55 1067: неявное приведение значения типа String к несвязанному типу Function.

Вот где проблема:

        if(InputManager.isTouch){
            this.addEventListener(TouchEvent.TOUCH_BEGIN, TouchEventHandler);
        } else {
            this.addEventListener(MouseEvent.MOUSE_OVER, over);
        }

Это находится в конструкторе кнопки.

Я немного поискал, но не могу найти ответы о 1067 в прослушивателе событий, которые имеют отношение к этой проблеме. Но, как я уже сказал, какой-то нуб с AS3.

Спасибо!!


person DanTheMan    schedule 05.05.2013    source источник
comment
Не могли бы вы указать, какая именно строка вызывает ошибку? Спасибо   -  person phisch    schedule 05.05.2013
comment
Понятно. Оказывается, addEventListener думал, что функция over является строкой, потому что (хотя я еще не нашел ее) общедоступная переменная over:String была объявлена ​​где-то еще. Я просто изменил имя функции на Over(), и теперь она работает.   -  person DanTheMan    schedule 05.05.2013
comment
Соглашения об именах для обработчиков упрощают код, например: onTouchBegin или touchBeginHandler и onMouseOver или mouseOverHandler.   -  person Jason Sturges    schedule 06.05.2013


Ответы (1)


Это строка с ошибкой:

this.addEventListener(TouchEvent.TOUCH_BEGIN, TouchEventHandler);

Вы должны понимать, что первый параметр — это строка с названием события, второй параметр должен быть функцией, и вы передаете ссылку на класс.

Я предполагаю, что параметр over в строке 4 является функцией и вам подойдет. Также я предполагаю, что свойство TouchEvent.TOUCH_BEGIN является строкой.

person Fabiano Luiz    schedule 05.05.2013