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

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

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

Регистрация: Sep 2006
Адрес: Calgary
Сообщений: 82
Отправить сообщение для NtM с помощью ICQ
По умолчанию доступ к мувикам на сцене

есть у меня мувики на сцене - mc_01, mc_02
к мувику mc_01 я приписала класс mc_01. Как теперь из этого класса доступиться к другим элементам сцены, в частности к mc_02?

и другой вопрос.

когда к мувикам добавляется событие
Код AS3:
mc_01.addEventListener(MouseEvent.MOUSE_OVER, onMc_menuMouseOver01);
mc_02.addEventListener(MouseEvent.MOUSE_OVER, onMc_menuMouseOver01);
 private function onMc_menuMouseOver01(evt:MouseEvent):void {
			  	...
		   }
возможно ли узнать в функции menuMouseOver01, кто именно её вызвал, mc_01 или mc_02?

и ещё тут вопрос нарисовался.

раньше в AS2 можно было в цикле прогнать мувики, типа

Код AS1/AS2:
for (i=0; i<10; i++) {
trace(_root["mc_"+i]);
}
а как такое делать в AS3?


Последний раз редактировалось NtM; 17.07.2009 в 04:08.
Старый 17.07.2009, 09:45
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
Сообщение от NtM Посмотреть сообщение
Как теперь из этого класса доступиться к другим элементам сцены, в частности к mc_02?
Объект ничего не должен знать о внешних объектах, только о своих детях.
Используйте события.
Хотя, есть кривые способы Вам помочь.

Цитата:
Сообщение от NtM Посмотреть сообщение
возможно ли узнать в функции menuMouseOver01, кто именно её вызвал, mc_01 или mc_02?
evt.currentTarget

Цитата:
Сообщение от NtM Посмотреть сообщение
а как такое делать в AS3?
Код AS3:
for (var i:int = 0; i < 10; i++) 
{
    trace(getChildByName("mc_" + i.toString()));
}
__________________
Griver

Старый 17.07.2009, 10:35
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 3  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
>>есть у меня мувики на сцене - mc_01, mc_02
к мувику mc_01 я приписала класс mc_01. Как теперь из этого класса доступиться к другим элементам сцены, в частности к mc_02?

Через parent - это то, на чем лежит мувик.
Надо оловить событие
Код AS3:
addEventListener(Event.ADDED_TO_STAGE, addToStageHandler);
если он на сцене, то у него ясное дело есть parent, однако не факт, что в это же время у другого мувика mc_02 появился parent, а может он еще не добавлен...
Выход есть.
В документ классе, а мувики на нем будут лежать, подиспатчить событие что все мувики добавлены
Код AS3:
dispatchEvent(new Event("всеМувикиДобавлены"));
Отловить его в классе мувика и спокойно работать с другими мувиками.
Код AS3:
		public function Mc1(){
			txt.text="Я mc1";
			addEventListener(Event.ADDED_TO_STAGE, addToStageHandler);
		}
 
		private function addToStageHandler(evt:Event):void{
			parent.addEventListener("всеМувикиДобавлены", всеМувикиДобавленыHandler);
		}
 
		private function всеМувикиДобавленыHandler(evt:Event):void{
			//стучимся к мувику mc2
			var mc2:MovieClip = parent.getChildByName('mc2') as MovieClip;
			mc2.txt.appendText('\nпривет от мувика mc1');
		}
У этой схемы один большой минус: повторно использовать эти классы мувиков в другом проекте будет тяжеловато, тк. проекты отличаются и там наверно не будет в документ классе чудо мувика mc2 с текстовым полем txt, а классы в свою очередь пишутся для универсальности и использования их в разных проектах, однако нарушая ООП, мы делаем наш код настолько непонятным, что никто после декомпиляции ничего не поймет.
Я и сам не разберусь, если открое это через недельку или даже пару дней.
http://www.murmadillo.tut.su/m/mc_0_mc_1.rar

Старый 17.07.2009, 11:00
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 4  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
А вот и один из них.
__________________
Griver

Старый 17.07.2009, 20:12
NtM вне форума Посмотреть профиль Отправить личное сообщение для NtM Найти все сообщения от NtM
  № 5  
Ответить с цитированием
NtM

Регистрация: Sep 2006
Адрес: Calgary
Сообщений: 82
Отправить сообщение для NtM с помощью ICQ
Ребята, спасибо вам огромное за помощь !

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

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

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


 


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


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