2013-08-31 1 views
0

Я получаю следующее сообщение об ошибке:VerifyError: Error # 1053: Illegal переопределение addEventListener

VerifyError: Error #1053: Illegal override of addEventListener in  
some.path.to.my.CustomObject 

обычно это происходит при попытке загрузить SWF/SWC, когда версии отличаются, но это, как правило, с пользовательская библиотека, а не метод вспышки, такой как addEventListener. Мои библиотеки находятся в одной версии AIR SDK 3.8, а приложение верхнего уровня имеет ту же версию. Первоначально я использовал 3,4, но до 3,8 думал, что это может помочь, но это не так. Я также обновил флеш-плеер до 11,8, без разницы.

CustomObject жалуется, что нет addEventListener переопределить в своем классе или любом базовом классе. Базовые классы также являются обычными, они не являются производными от флэш-классов. Я использую Flash Builder 4.7.

Я не могу скомпилировать и не знаю, как решить эту проблему, помощь приветствуется.

+0

Если ответы ниже не помогают, попробуйте показать нам код ... –

+0

Спасибо Сунил. Один из ответов ниже действительно помог, решение встроено в комментарии, это был тег [Bindable] в родительском. – Joe

ответ

1

Измените имя пакета из пользовательского объекта, а также любые методы участие. Если такая же ошибка сохраняется как ошибка с исходным пространством имен, тогда у вас есть предварительно выполненный код в ваших библиотеках, которые необходимо удалить. Вам нужно было бы воссоздать SWCs потенциально. (Я до сих пор не знаю, какие библиотеки вы импортируете, будьте осторожны, чтобы вы случайно не импортировали библиотеки в свои настройки публикации)

Одна из возможностей заключается в том, что вы случайно не импортируете правильные объекты: например, класс this. package.here.BouncingBall, но на самом деле импортируют fl.events.animations.BouncingBall.

+0

В Flash Builder я предполагаю, что воссоздание swc происходит через Project-> Clean ... Я также удалил их вручную из пути сборки. В CustomObject нет кода, кроме базового класса. Когда я удаляю базовый класс, проблема уходит - но когда я делаю базовый класс пустым, проблема все еще существует, заставляя меня думать, что это проблема с базовым классом, существующим - но поиск, похоже, не находит другого , – Joe

+0

Хорошо, что в нем было [Bindable] в родительском классе и дочернем классе, при удалении [Bindable] из родительского класса он работал нормально? – Joe

+0

Я думаю, что видел это раньше, но прошло уже пару лет. Вне удобства я рекомендую держаться подальше от [bindable]. Без тестирования я подозреваю, что эту ошибку можно получить всякий раз, когда вы используете [bindable] в том же свойстве для супер и подкласса. Это соответствует вашим выводам? – ktamlyn

1

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

var appDomainA:ApplicationDomain = new ApplicationDomain(); 

var contextA:LoaderContext = new LoaderContext(false, appDomainA); 
var loaderA:Loader = new Loader(); 
loaderA.load(new URLRequest("application2.swf"), contextA);//application2.swf is you external swf 

Этот код и примеры можно найти на этой странице application domain

+0

У меня только один swf - я не загружаю внешние swf. У меня есть две библиотеки, которые являются частью пути сборки. – Joe

+0

Это решение является более универсальным, чем принятый ответ. –

0

Обнаружено другое условие этого - в базовом классе, иногда доступ к локальной переменной в базовом классе через геттер вызовет эту проблему. Кажется случайным, это не всегда происходит.

Таким образом, вместо

protected var __someVar:int; 

public function get someVar():int{ 
    return __someVar; 
} 

public function addOneToSomeVar():int{ 
    return someVar + 1; //using local getter - caused VerifyError #1035 
} 

сделать

protected var __someVar:int; 

public function get someVar():int{ 
    return __someVar; 
} 

public function addOneToSomeVar():int{ 
    return __someVar + 1; //using local variable 
} 

Это не всегда последовательны. Я использовал другие функции геттера без проблем.

Смежные вопросы