Показать сообщение отдельно
Старый 30.11.2009, 02:50
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 8  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Код AS3:
package {
 
	import flash.display.Sprite;
	import flash.events.Event;
 
	/**
	 * ...
	 * @author gloomyBrain
	 */
 
	public class Main extends Sprite {
 
		public var s0:Sprite;
		public var s1:Sprite;
		public var s2:Sprite
 
		public function Main():void {
 
			s0 = new Sprite();
			s1 = new Sprite();
			s2 = new Sprite();
			s0.addEventListener("someEvent", onEvent);
 
			addChild(s0);
			s0.addChild(s1);
			s1.addChild(s2);
			s2.dispatchEvent(new Event("someEvent", true));
 
		}
 
		public function onEvent(evt:Event):void {
			trace("got you!");
		}
 
	}
 
}
В данном примере слушатель регистрируется в объекте s0, а событие возникает объекте s2. Событие ловится, т.к. свойство события bubbles = true. Это заставляет событие проходить по всей иерархии отображения.
Таким образом, Вы можете диспатчить события любым объектом, а решения принимать в классе схемы (родительском объекте)

Собственно, пример к тому что написал Samfr

UPD:
Я бы делел так?
1 - класс ОбъектСхемы
2 - класс СвязьДвухОбъектов

1 - должен иметь поля:
- тип
- размер
- координаты
- связи (массив ссылок на объекты класса связьДвухОбъектов)
- ... что-то еще по заданию

1 - должен диспатчить события:
- при перемещении
- при удалении
- при изменении других свойств

1 - должен слушать свои события:
- перемещения (и вызывать метод перерисовать() для всех своих связей)
- удаления (и освобождать все вои связи от ссылки на себя)

2 - должен иметь поля:
- тип
- цвет
- координаты одного конца |=> для создания связей без привязки к объектам
- координаты второго конца|
- первый объект (ссылка на объект класса ОбъектСхемы)
- второй объект (ссылка на объект класса ОбъектСхемы)
- ... еще что-то по заданию

2 - должен иметь методы:
- перерисовать() - метод, рисующий связь заново при изменении положения ОбъектовСхемы, ссылки на которые записаны в первомОбъекте и второмОбъекте данной связи
- ... еще что-то по заданию
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 30.11.2009 в 03:17.