![]() |
|
||||||||||
|
|||||
|
Что касается инспектора свойств, то я сделал бы так.
Каждое свойство загнать в интерфейс. Обычно бывает много одинаковых свойств, поэтому можно несколько свойств помещать в один интерфейс расширяя интерфейсы. Тут зависит от того какие будут у вас объекты. Само же свойство сделать отдельным объектом class Property{ public function Property(contextObject:RawObject){ } public var name:String; public var description:String; public function setPropertyValue(value:String){ } public function getPropertyValue():String{ } } interface IVertexCount { function getVertexCount():int; function setVertexCount(value:int):void; } class VertexCountProperty{ public function VertexCountProperty(contextObject:RawObject){ super(contextObject); name = "Число вершин"; description = "Задайте количество вершин"; } override public function setPropertyValue(value:String){ (contextObject as IVertexCount).setVertexCount(parseInt(value)); } override public function getPropertyValue():String{ (contextObject as IVertexCount).getVertexCount().toString(); } } public var properties:Array; Если выделить на экране ScreenObject, то инспектор свойств получит ссылку на этот объект, возьмет из него RawObject в котором хранятся все доступные для изменения свойства. Пробегаем массив. Строим формочку для отображения свойств. Когда юзер изменил свойство и нажал "ок", то у соответствующего свойства вызываем setPropertyValue, а у экранного объекта вызываем draw(), чтобы обновить графическое представление изменившейся модели Добавлено через 5 минут expl, я отредактировал пост. PolygonSerializer заменил на Format1PolygonSerializer. У меня мысль тут такая: Количество классов сериалайзеров = количество фигур * ко-во форматов
__________________
Сам себе репортер |
![]() |
Часовой пояс GMT +4, время: 00:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| архитектура , паттерн , Проектирование |
|
|