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

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

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

Регистрация: Jan 2010
Сообщений: 41
Cool Переменные родителя к чайлду

Добрый день все никак не могу добиться корректного использования чилдом переменных и объектов родителя
допустим есть флешка
на ней есть текстовое поле (textArea)
к флешке привязан класс Main
Код AS3:
package {
	import flash.display.*;
	public class Main extends Sprite	{
		public function Main(){
			var a = new Parent();
		}
	}
}
в Main'е создаем объект класса Parent
Код AS3:
package  {
	public class Parent {
		public function Parent() {
			trace(???)
		}
	}
}
и вот так сильно хочется узнать.. что необходимо вписать вместо "???" чтобы допустим вывести на экран сожержание (textArea.text)
на данный момент делаю так:
в Main - public static var _textArea = textArea
в Parent - trace(Main._textArea.text)
но как-то не красиво да и черева-то
Подскажите люди добрые


Последний раз редактировалось iNils; 03.09.2010 в 11:10.
Старый 03.09.2010, 01:03
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Самое лучшее, что можно вообще посоветовать это написать себе обёртку для Sprite`а, в котором запилить геттер parent ради обучения и использовать нормальную событийную модель. Читать про addEventListener и dispatchEvent.


Чуть похуже это хотя бы дождаться добавления объекта в дисплай лист, чтобы у него появился этот самый parent. Нужно ждать события Event.ADDED_TO_STAGE

Примерно такой же хужести это передавать в конструктор ссылку на Main.

Вам просто важно понимать что у Вас в программе к чему. Вы вот сейчас сидите на стуле. А стул состоит из атомов и молекул - для Вас реализация стула скрыта. И согласитесь, это здорово. Не надо думать "Ой, как бы я не проломил кристаллическую решетку когда чихну". Или компьютер. Вы не знаете что там происходит - зато Вы можете взаимодействовать. Вы не можете заставить его летать, зато можете открыть блокнот.
Дак сделайте реализацию взаимодействия только чего нужно, остальное перекройте толстенной стенкой за которой ничего не видно. Вам просто не нужно получить доступ к Main из Parent. Вы заблуждаетесь.

Старый 03.09.2010, 10:48
stinkybob вне форума Посмотреть профиль Отправить личное сообщение для stinkybob Найти все сообщения от stinkybob
  № 3  
Ответить с цитированием
stinkybob

Регистрация: Jan 2010
Сообщений: 41
Да мне все говорят что мне не нужно получать доступ из parent к main =)

к объектам сцены можно только обращаться из главного класса ( в моем случае из Main) но мне нужно общаться с ними и из других классов так как описывать все функции в Main'е будет слишком грамостко и со временем когда там уже будет 5000 строк то фиг что найдешь поэтому и хочу как-то пользовться этими объектами из других класов, на данный момент использую как уже писал

public static var ....

но от того что у меня на сцене тьма тьмущая объектов и как минимум к 70% из них должен быть доступ из других класов то тут уж ничего не поделать...


"Самое лучшее, что можно вообще посоветовать это написать себе обёртку для Sprite`а, в котором запилить геттер parent "

не много не понял что обозначает обертка для Sprite =)

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Это скорее была шутка. Смысл в том, что нужно занаследовать свой Sprite от оригинального спрайта, где переопределить геттер parent который будет бросать ошибку.

Я крайне неуверен, что Вам нужен класс в 5000 строчек.
Создайте 3 подкласса, например "левая панель", "центральная панель" и "правая панель". Панели скорее всего будут взаимодействовать 3-4 событиями - задача Main просто перебрасывать события. Разделите программу на куски: каждый кусок должен выполнять свою маленькую часть работы и отчитываться наверх.

Представьте иерархию как на работе: начальник просто подписывает документы и говорит, чтобы все работали. Менеджеры получают приказ от начальника, суетятся, собирают бумаги и думают, чего нужно производству. Отдают приказы простым рабочим. Рабочие суетятся, что-то делают и говорят менеджерам о проделанной работе. Менеджеры вызывают грузчиков, грузчики отчитываются перед менеджерами. А менеджеры отчитываются перед начальством на уровне "работа сделана-не сделана".

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

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

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


 


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


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