![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 62
|
Добрый вечер.
Как можно обратиться к объекту, созданному в другой функции? Следующий код выдаёт 2 ошибки, связанные с обращением к нему. function someFunc ():void{ var MessageBox:MB_YN = new MB_YN(); MessageBox.name = "MB"; MessageBox.alpha = 0; MessageBox.x = 350; MessageBox.y = 270; MessageBox.txt.text = "Press No To completely skip this tutorial." stage.addChild(MessageBox); MessageBox.y_btn.addEventListener(MouseEvent.CLICK, tutMsgBoxHandler); MessageBox.n_btn.addEventListener(MouseEvent.CLICK, tutMsgBoxHandler); TweenLite.to(MessageBox, 0.6, {alpha:1}); } function tutMsgBoxHandler (e:MouseEvent):void{ stage.getChildByName("MB").y_btn.removeEventListener(MouseEvent.CLICK, tutMsgBoxHandler); // 1119: Access of possibly undefined property y_btn through a reference with static type flash.display:DisplayObject. stage.getChildByName("MB").n_btn.removeEventListener(MouseEvent.CLICK, tutMsgBoxHandler); // 1119: Access of possibly undefined property n_btn through a reference with static type flash.display:DisplayObject. if (e.target.name == "y_btn"){ TweenLite.to(stage.getChildByName("MB"), 0.6, {autoAlpha:0}); //.......... } else { //.......... } } Внутри мувиклипа две кнопки: y_btn , n_btn и текстовое поле - txt. Последний раз редактировалось MidnightOne; 11.06.2010 в 22:19. |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Всё-таки ви тгавите и надо больше доки читать.
getChildByName возвращает что? - DisplayObject. У DisplayObject есть свойство y_btn и n_btn? Нет. Вот об этом ошибка и говорит. Но мы считаем, что обьект, который возвращает getChildByName на самом деле MB_YN, наследник DisplayObject, в котором есть свойства y_btn и n_btn. Так что приведём то, что возвращает getChildByName к MB_YN и будет нам щасье А вообще я не особо понимаю такое использование getChildByName. Не для того оно, по-моему. Вынес var MessageBox:MB_YN за функцию, сделал private var MessageBox:MB_YN; сделал в функции MessageBox = new MB_YN(); И в tutMsgBoxHandler тупо MessageBox.y_btn.removeEventListener(MouseEvent.CLICK, tutMsgBoxHandler); |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 62
|
Спасибо.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|