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

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

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

Регистрация: Dec 2011
Сообщений: 70
По умолчанию Доступ к Document Class во FlashDevelop

У меня есть проект во FlashDevelop. В нем задан Document Class. Можно ли получить доступ к экземпляру Document Class и соответственно к его методам из других классов этого же проекта?

Старый 10.09.2012, 07:13
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 2  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Можете передать ссылку на него в нужный класс и там уже будут доступны его публичные методы и перем.
Напр.

Код AS3:
 
 ... 
  public var myName:String = "DocumentClass";
 // напр в Main создается новый объект и передается ссылка на Main
 var item:Item = new Item( this );
 
 
....
 
public class Item 
{
    private var _main:Main;
 
    public function Item( main:Main )
   {
 
      _main = main;
 
     trace( _main ); // [ object Main ];
 
     trace( _main.myName ); // DocumentClass
 
   }  
 
}
как то так

Старый 10.09.2012, 07:23
RigidFlasher вне форума Посмотреть профиль Отправить личное сообщение для RigidFlasher Найти все сообщения от RigidFlasher
  № 3  
Ответить с цитированием
RigidFlasher

Регистрация: Dec 2011
Сообщений: 70
Ясно. Спасибо.
Кстати, я тут поэкспериментировал и нашел еще один способ:

Код AS3:
var mainInstance:Main = (root as Main);
mainInstance.methodOfMainClass();
Существуют ли более простые способы? Может, есть стандартная возможность (например, какое-то ключевое слово), через которое можно обратиться к Document Class?

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

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Да, вот root в основной флешке ( если она не была загружена внутрь другой ) всегда указывает на документ класс.

Но вообще такие вещи считаются плохой практикой. В ООП стандартно принято делать так чтобы "дочерние" объекты не имели ссылок на "родительские", ну а документ класс является родителем по отношению ко всем прочим. Плохо это потому, что когда возникнет потребность в переносе класса в другой проект будут сложности с его адаптацией к окружению... Ещё потому, что какой-то из дочерних классов будет манипулировать родительским, что может привести к ошибкам в других дочерних классах и дебажить такую ситуацию иногда будет крайне трудно.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
RigidFlasher, а зачем нужен доступ к документ классу?

Старый 10.09.2012, 08:15
RigidFlasher вне форума Посмотреть профиль Отправить личное сообщение для RigidFlasher Найти все сообщения от RigidFlasher
  № 6  
Ответить с цитированием
RigidFlasher

Регистрация: Dec 2011
Сообщений: 70
Например, мне нужно выполнять определенные действия с классом Main по событиям, которые генерируются в дочерних MovieClip.
Может, более правильным решением будет подписать Main на события дочерних мувиков, а доступ к Main дочерним мувикам не давать?

Старый 10.09.2012, 08:30
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 7  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Может, более правильным решением будет подписать Main на события дочерних мувиков, а доступ к Main дочерним мувикам не давать?
Будет и еще как (нечасто спрашивающий сам до этого доходит...)
__________________
тут я

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

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

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


 


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


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