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

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

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

Регистрация: Aug 2007
Сообщений: 168
По умолчанию Можно ли "достучатся" до класса не создавая явных ссылок на него?

Здравствуйте. Такая ситуация:
Есть несколько мувиклипов на сцене и с каждым из них ассоциирован отдельный класс, внутри одного из этих клипов есть еще клипы с которыми с которыми ассоциированы другие классы. Так вот, мне необходимо допустим при нажатии на одном из самых вложенных клипов , вызвать какой-то метод одного из самых главных (по вложенности) клипов (причем допустим не того в который вложен нажимаемый клип, а соседнего). Можно ли это как-то сделать не создавая явных ссылок на эти классы? Если можно, с примерами

Может не очень понятно объяснил, тогда вот картинка:

[IMG]http://i021.***********/1003/e2/8d158a85b055.jpg[/IMG]

И вопросы по ней:
1. Как из B3 вызвать метод С ?
2. Как из A вызвать метод B ?
3. Как из A вызвать метод B1 ?

При условии что явных ссылок на эти классы нет (кроме parent для B1 и наверное parent.parent для B2), поскольку все классы добавляются автоматически при компиляции


Последний раз редактировалось AlliAS; 29.03.2010 в 17:21.
Старый 29.03.2010, 17:33
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 2  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
если это мувики на сцене, то они могут просто генерировать всплывающие события, которые будут отлавливать главные клипы.
Если нет, то можно сделать синглтон(вики). В двух словах, это просто статическая переменная, которая содержит ссылку на этот самй главный клип.

Что-то типа такого:
Код AS3:
public class Main {
  public static me:Main;
  public function Main(){
    Main.me = this;
  }
  public function foo():void {
    //do something
  }
}

Код AS3:
public class Unit(){
  public function Unit (){
    Main.me.foo();
  }
}
__________________
мой пустой блог

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

Регистрация: Aug 2007
Сообщений: 168
iflamberg Это мувики на сцене. За "синглтон" спасибо, я до этого только его и испольовал, правда думал что это дико неправильно. А можно подробнее про вплывающие события? Только "по русски", а то в справочниках не очень доходчиво (для меня) написано.

Старый 29.03.2010, 18:12
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 4  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
делаете
Код AS3:
super.dispatchEvent(new Event(MY_EVENT, true));
в родителе или более поздних родителях:
Код AS3:
super.addEventListener(MY_EVENT, listener);
и в listener обрабатываете что надо. event.target будет иметь ссылку на того, кто вещал.

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

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

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


 


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


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