![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 63
|
вот код программы
public function ContactPage() { sc = new ServerComunication(); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(e:Event) { if (currentLabel == "finished") { addEventListener(Event.FRAME_CONSTRUCTED, onFrameConstructed); function onFrameConstructed(e:Event){ trace("onFrameConstructed"); sendBTN.addEventListener(MouseEvent.CLICK, sendBTNClicked); //<вырезано> появляется энтер inputCommentTxt.text = ""; // подгрузим контактные данные xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, LoadXML); try { xmlLoader.load(new URLRequest("Contacts/info.xml")); } catch (error:Error) { trace("Unable to load requested document."); } removeEventListener(Event.FRAME_CONSTRUCTED, onFrameConstructed); } removeEventListener(Event.ENTER_FRAME, onEnterFrame); } } после чего выдает ошибку на строчке sendBTN.addEventListener(MouseEvent.CLICK, sendBTNClicked) sendBTN создается на кадре "finished" не понимаю пчему возникает ошибка? и почему-то вот текст ошибки: Последний раз редактировалось wvxvw; 02.04.2010 в 21:18. |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 10
|
у меня та же самая ошибка на такую же конструкцию. Сижу и парюсь.
![]() Добавлено через 1 час 50 минут Я нашёл, почему у меня не работало. Экземпляр класса в момент привязки к нему Listener'а должен быть уже на сцене. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 63
|
изменил код, избавился от onEnterFrame
public function ContactPage() { sc = new ServerComunication(); addEventListener(Event.FRAME_CONSTRUCTED, onFrameConstructed); } private function onFrameConstructed(e:Event){ trace("onFrameConstructed "+currentFrame); if (currentLabel == "finished") { // sendBTN:Button sendBTN.addEventListener(MouseEvent.CLICK, sendBTNClicked); // х.з. но без этой херни появляется энтер inputCommentTxt.text = ""; // подгрузим контактные данные xmlLoader = new URLLoader(); xmlLoader.addEventListener(Event.COMPLETE, LoadXML); try { xmlLoader.load(new URLRequest("Contacts/info.xml")); } catch (error:Error) { trace("Unable to load requested document."); } removeEventListener(Event.FRAME_CONSTRUCTED, onFrameConstructed); } } смотрите, вот выводы: onFrameConstructed 1 onFrameConstructed 2 onFrameConstructed 3 onFrameConstructed 4 onFrameConstructed 5 onFrameConstructed 6 onFrameConstructed 7 onFrameConstructed 8 onFrameConstructed 9 onFrameConstructed 10 onFrameConstructed 11 onFrameConstructed 12 onFrameConstructed 12 onFrameConstructed 13 onFrameConstructed 14 onFrameConstructed 15 onFrameConstructed 16 onFrameConstructed 17 onFrameConstructed 18 onFrameConstructed 19 onFrameConstructed 20 onFrameConstructed 21 onFrameConstructed 22 onFrameConstructed 23 onFrameConstructed 24 onFrameConstructed 25 onFrameConstructed 26 onFrameConstructed 27 TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at ContactPage/onFrameConstructed()[C:\WebServers\home\test.ru\www\ContactPage.as:49] onFrameConstructed 27 XML Loaded finished кроме того стоит заметить, что код после if (currentLabel == "finished") полностью выполняется, но до сих пор выводится та же ошибка.. еще вычитал в хэлпе: "..Это многоадресное событие, которое отправляется всеми экранными объектами, для которых зарегистрированы прослушиватели данного события." не совсем догоняю смысл, у меня на этом кадре дорисовывается анимация + добовляется 8 объектов, кому интересно можете посмотреть сайт на http://dance.reditstudio.ru/ страница "контакты"(очень даже красиво получается). внимание вопрос, почему событие на 27-м кадре вызывается дважды? Добавлено через 11 минут еще когда я перемещаю удаление события наверх, т.е. сразу после if: if (currentLabel == "finished") { removeEventListener(Event.FRAME_CONSTRUCTED, onFrameConstructed); сам отвечу на свой вопрос. на 27-м кадре в скриптах написано stop(). FRAME_CONSTRUCTED на 27-м кадре вызывается дважды, согласно плану выполнения, и будет возникать до тех пор пока не будет удален прослушиватель. меня принципиально заинтересовал вопрос, зачем тогда нужен FRAME_CONSTRUCTED, если объекты на сцене в момент его вызова еще не появились?! Последний раз редактировалось mrMEM; 05.04.2010 в 16:53. |
|
|||||
|
Регистрация: Feb 2009
Сообщений: 63
|
вылечил,
но вопрос еще актуален |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|