![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 41
|
Добрый день все никак не могу добиться корректного использования чилдом переменных и объектов родителя
допустим есть флешка на ней есть текстовое поле (textArea) к флешке привязан класс Main package { import flash.display.*; public class Main extends Sprite { public function Main(){ var a = new Parent(); } } } и вот так сильно хочется узнать.. что необходимо вписать вместо "???" чтобы допустим вывести на экран сожержание (textArea.text) на данный момент делаю так: в Main - public static var _textArea = textArea в Parent - trace(Main._textArea.text) но как-то не красиво да и черева-то Подскажите люди добрые ![]() Последний раз редактировалось iNils; 03.09.2010 в 11:10. |
|
|||||
|
Самое лучшее, что можно вообще посоветовать это написать себе обёртку для Sprite`а, в котором запилить геттер parent ради обучения и использовать нормальную событийную модель. Читать про addEventListener и dispatchEvent.
Чуть похуже это хотя бы дождаться добавления объекта в дисплай лист, чтобы у него появился этот самый parent. Нужно ждать события Event.ADDED_TO_STAGE Примерно такой же хужести это передавать в конструктор ссылку на Main. Вам просто важно понимать что у Вас в программе к чему. Вы вот сейчас сидите на стуле. А стул состоит из атомов и молекул - для Вас реализация стула скрыта. И согласитесь, это здорово. Не надо думать "Ой, как бы я не проломил кристаллическую решетку когда чихну". Или компьютер. Вы не знаете что там происходит - зато Вы можете взаимодействовать. Вы не можете заставить его летать, зато можете открыть блокнот. Дак сделайте реализацию взаимодействия только чего нужно, остальное перекройте толстенной стенкой за которой ничего не видно. Вам просто не нужно получить доступ к Main из Parent. Вы заблуждаетесь.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 41
|
Да мне все говорят что мне не нужно получать доступ из parent к main =)
к объектам сцены можно только обращаться из главного класса ( в моем случае из Main) но мне нужно общаться с ними и из других классов так как описывать все функции в Main'е будет слишком грамостко и со временем когда там уже будет 5000 строк то фиг что найдешь поэтому и хочу как-то пользовться этими объектами из других класов, на данный момент использую как уже писал public static var .... но от того что у меня на сцене тьма тьмущая объектов и как минимум к 70% из них должен быть доступ из других класов то тут уж ничего не поделать... "Самое лучшее, что можно вообще посоветовать это написать себе обёртку для Sprite`а, в котором запилить геттер parent " не много не понял что обозначает обертка для Sprite =) |
|
|||||
|
Это скорее была шутка. Смысл в том, что нужно занаследовать свой Sprite от оригинального спрайта, где переопределить геттер parent который будет бросать ошибку.
Я крайне неуверен, что Вам нужен класс в 5000 строчек. Создайте 3 подкласса, например "левая панель", "центральная панель" и "правая панель". Панели скорее всего будут взаимодействовать 3-4 событиями - задача Main просто перебрасывать события. Разделите программу на куски: каждый кусок должен выполнять свою маленькую часть работы и отчитываться наверх. Представьте иерархию как на работе: начальник просто подписывает документы и говорит, чтобы все работали. Менеджеры получают приказ от начальника, суетятся, собирают бумаги и думают, чего нужно производству. Отдают приказы простым рабочим. Рабочие суетятся, что-то делают и говорят менеджерам о проделанной работе. Менеджеры вызывают грузчиков, грузчики отчитываются перед менеджерами. А менеджеры отчитываются перед начальством на уровне "работа сделана-не сделана".
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:03. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|