Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Экземпляр основного класса (http://www.flasher.ru/forum/showthread.php?t=208694)

Void 15.08.2014 19:43

Экземпляр основного класса
 
Как получить доступ к экземпляру основного класса из других классов? Который был создан при запуске флешки. И можно ли создать еще 1 объект основного класса?

КорДум 15.08.2014 20:04

Изучите паттерн "Singletone". Создать второй экземпляр можно. При загрузке одной флешки разными лоадерами в один аппдомен именно это и происходит.

Psijic 15.08.2014 20:20

вообще, экземпляр текущего класса - это this. Создать новый экземпляр корневого класса можно через new Main();

Void 15.08.2014 20:21

А как лучше реализовать такую задачу:
При запуске флешки в основном классе создаются объекты других классов, к которым позже надо будет обратиться. Вот как к ним обратиться? Знаю только что при запуске можно вывести ссылки на них из основного класса.

Zebestov 15.08.2014 20:23

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

PsychoTech 15.08.2014 20:34

Цитата:

Сообщение от Void (Сообщение 1170638)
А как лучше реализовать такую задачу:
При запуске флешки в основном классе создаются объекты других классов, к которым позже надо будет обратиться. Вот как к ним обратиться? Знаю только что при запуске можно вывести ссылки на них из основного класса.

Наверно вам действительно нужно сначала определиться с иерархией вашего приложения. Насколько я понял вы пытаетесь запихнуть все в основной класс а обращаться хотите из других и не знаете как. Лично я бью все на вспомогательные классы а потом уже собираю интерактивную сцену. ИМХО:o

P.S. может я просто не понял проблему =(

Void 15.08.2014 20:46

Цитата:

Сообщение от PsychoTech (Сообщение 1170643)
Наверно вам действительно нужно сначала определиться с иерархией вашего приложения. Насколько я понял вы пытаетесь запихнуть все в основной класс а обращаться хотите из других и не знаете как. Лично я бью все на вспомогательные классы а потом уже собираю интерактивную сцену. ИМХО:o

P.S. может я просто не понял проблему =(

Именно задача, которая требует реализации:

Создать текстовое поле, в экземпляре основного класса или в любом другом объекте. И иметь доступ к этому полю из любого класса.

КорДум 15.08.2014 20:51

Так воспользуйтесь синглтоном, как я говорил выше. В данном случае это в корне не правильно так его использовать здесь, но это будет проще, чем полностью переделывать архитектуру приложения.

Void 15.08.2014 21:07

Цитата:

Сообщение от КорДум (Сообщение 1170650)
Так воспользуйтесь синглтоном, как я говорил выше. В данном случае это в корне не правильно так его использовать здесь, но это будет проще, чем полностью переделывать архитектуру приложения.

Можете предложить свою реализацию данной задачи? Как правильно это сделать.

PsychoTech 15.08.2014 21:28

Цитата:

Сообщение от Void (Сообщение 1170647)
Именно задача, которая требует реализации:

Создать текстовое поле, в экземпляре основного класса или в любом другом объекте. И иметь доступ к этому полю из любого класса.

тогда вот вам ваш вариант. Изначально в классе в котором хотите обратиться сделайте следующее


Код AS3:

public var Text: TextField;

и юзайте его по полной без инициализации.

а в главном уже инициализируете

Код AS3:

public var MyText: TextField;
 // ну и далее как положено

а когда инициализируете класс в котором обращаетесь добавляете

Код AS3:

YmyaKlasssa.Text = MyText;
// ну и все думаю дальше разберетесь аналогично и для других переменных.

но я бы так не делал стараюсь подобные случаи сводить к самому минимуму.

Добавлено через 1 минуту
да не забудьте импорт сделать туда сюда.


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

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