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

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

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

Регистрация: Apr 2009
Сообщений: 141
По умолчанию отслеживание добавления мувиклипа через addChild()

здравствуйте

есть код

Код AS3:
var temp:MovieClip = new cla_1  ;
main_mc.addChild(temp);//выполняются функции и методы описанные в классе  cla_1.as
 
var temp2:MovieClip = new name_5  ;
main_mc.addChild(temp2);
как сделать чтобы объект temp2 создавался уже после того как cla_1 уже бы разместился в родителе и отработался бы весь код, размещённый в cla_1.as

спасибо

Старый 21.11.2013, 22:35
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Правильно так:
1. Отсылайте событие из cla_1.as после завершения нужного метода.
2. Слушайте это событие, и после того как оно наступит создавайте и добавляйте temp2.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от Agni Посмотреть сообщение
чтобы объект temp2 создавался уже после того как cla_1 уже бы разместился в родителе и отработался бы весь код, размещённый в cla_1.as
Мувиклип отсылает событие ADDED_TO_STAGE. Слушайте
Код AS3:
var temp1:MovieClip = new cla_1();
temp1.addEventListener(Event.ADDED_TO_STAGE, addNextItem);
main_mc.addChild(temp1);
var temp2:MovieClip;
 
function addNextItem(e:Event)
{
   temp2 = new name_5();
   main_mc.addChild(temp2);
}

Старый 22.11.2013, 06:55
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 4  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141
SuriTheAngel, спасибо

будет ли выполнение отличаться от:
Код AS3:
var temp1:MovieClip = new cla_1();
temp1.addEventListener(Event.ADDED_TO_STAGE, addNextItem);
main_mc.addChild(temp1);
 
function addNextItem(e:Event)
{
   var temp2:MovieClip = new name_5();
   main_mc.addChild(temp2);
}

Старый 22.11.2013, 07:42
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 5  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
отличаться будет тем, что доступ к temp2 после выполнения функции нужно будет искать через getChildAt() (а искать его надо будет допустим для того чтобы удалить), SuriTheAngel же сохранил ссылку на экземпляр, который можно будет быстро вызвать после выполнения функции.

А вообще, если у вас в классах нет никаких асинхронных операций(таких как ожидание загрузки данных с сервера), то и первый ваш код должен работать, и у соответственно у вас кривой класс.

если есть асинхронные операции, то я бы в классе cla_1 диспатчил событие (dispatchEvent(new Event("initComplete")));
а в главном окне ловил его

Код AS3:
var temp1:MovieClip = new cla_1();
temp1.addEventListener("initComplete", addNextItem);

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

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

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


 


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


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