Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.06.2010, 22:16
MidnightOne вне форума Посмотреть профиль Отправить личное сообщение для MidnightOne Найти все сообщения от MidnightOne
  № 1  
Ответить с цитированием
MidnightOne
 
Аватар для MidnightOne

Регистрация: Jan 2010
Сообщений: 62
По умолчанию Обращение к объекту, объявленному в другой функции.

Добрый вечер.

Как можно обратиться к объекту, созданному в другой функции?

Следующий код выдаёт 2 ошибки, связанные с обращением к нему.

Код AS3:
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 {
 
		//..........
	}
}
Это не созданный мной класс, а просто объект (мувиклип) в библиотеке, с Import for AS.
Внутри мувиклипа две кнопки: y_btn , n_btn и текстовое поле - txt.


Последний раз редактировалось MidnightOne; 11.06.2010 в 22:19.
Старый 11.06.2010, 23:26
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Всё-таки ви тгавите и надо больше доки читать.
getChildByName возвращает что? - DisplayObject. У DisplayObject есть свойство y_btn и n_btn? Нет. Вот об этом ошибка и говорит.
Но мы считаем, что обьект, который возвращает getChildByName на самом деле MB_YN, наследник DisplayObject, в котором есть свойства y_btn и n_btn. Так что приведём то, что возвращает getChildByName к MB_YN и будет нам щасье
Код AS3:
(stage.getChildByName("MB") as MB_YN).y_btn.removeEventListener(MouseEvent.CLICK, tutMsgBoxHandler);
А вообще я не особо понимаю такое использование getChildByName. Не для того оно, по-моему. Вынес var MessageBox:MB_YN за функцию, сделал private var MessageBox:MB_YN; сделал в функции MessageBox = new MB_YN(); И в tutMsgBoxHandler тупо MessageBox.y_btn.removeEventListener(MouseEvent.CLICK, tutMsgBoxHandler);

Старый 12.06.2010, 01:53
MidnightOne вне форума Посмотреть профиль Отправить личное сообщение для MidnightOne Найти все сообщения от MidnightOne
  № 3  
Ответить с цитированием
MidnightOne
 
Аватар для MidnightOne

Регистрация: Jan 2010
Сообщений: 62
Спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 22:02.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 22:02.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.