Ошибка 1009 после gotoAndStop - экземпляр этапа никогда не добавляется - PullRequest
0 голосов
/ 28 февраля 2011

Я просматриваю форумы часами (днями?) На 1009 ошибках, но я остаюсь в тупике. Это кажется очень загадочным, и я ЛЮБЛЮ некоторую помощь, если у вас есть идеи.

У меня есть один .swf длиной 7 кадров - каждый кадр представляет отдельную «страницу», и вы можете переключать страницы с помощью виджета меню в верхнем правом углу. Виджет меню вызывает gotoAndPlay ("frame").

Все работает отлично, за исключением случаев, когда я переключаюсь с одного конкретного кадра на другой. Затем, во время инициализации нового фрейма (установка некоторых видимых свойств для различных элементов в ActionScript), я получаю страшную ошибку 1009 на конкретном экземпляре этапа, динамическом текстовом экземпляре i_word.

Вот что я пробовал до сих пор:

  • убедился, что сценарий действия для нового фрейма начинается с инструкции stop () перед началом инициализации - без костей
  • попытался изменить i_word в movie_clip вместо динамического текста, убедившись, что он был экспортирован для actioncript - без разницы. (У меня также есть 2 других динамических текстовых экземпляра на той же странице, которые, кажется, не вызывают проблемы)
  • добавлен прослушиватель ENTER_FRAME при загрузке нового кадра на случай, если проблема связана с синхронизацией. Вставьте большой оператор if, проверяя, не равны ли значения i_word и других экземпляров, перед тем, как приступить к инициализации. Он никогда не входит в if, потому что i_word НИКОГДА не добавляется. Я добавил трассировочные операторы для всех экземпляров, которые являются нулевыми, и это единственный. Если я удаляю все ссылки на i_word в своем ActionScript, все остальное не равно нулю, и дела идут вперед. Текст для i_word в этом случае даже отображается на экране.
  • попытался переименовать i_word - без кубиков
  • попытался удалить слой i_word и добавить новый слой - без кубиков

Такое ощущение, что где-то в моем флеш-файле есть серьезный Гремлин. Или, может быть, я упускаю что-то очевидное. Дайте мне знать, если у вас есть идеи ... Я был бы очень благодарен.

Спасибо! Elambda

1 Ответ

0 голосов
/ 07 января 2013

Если вы добавили команду addEventListener, вам нужно добавить команду removeEventListener, чтобы не получить ошибку 1009. Если текстовое поле существует не в каждом кадре, убедитесь, что вы удалили событие, которое сопровождает его. Пример:

    addEventListener(Event.ENTER_FRAME, hi);
function hi(Event:EVENT):void;
 {
datextfield.dosomething
}

тогда

removeEventListener(Event.ENTER_FRAME, hi);

если это не помогает, не возражаете против размещения кода?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...