Показать сообщение отдельно
Старый 09.11.2012, 23:15
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 23  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Что касается инспектора свойств, то я сделал бы так.
Каждое свойство загнать в интерфейс. Обычно бывает много одинаковых свойств, поэтому можно несколько свойств помещать в один интерфейс расширяя интерфейсы. Тут зависит от того какие будут у вас объекты.
Само же свойство сделать отдельным объектом
Код AS3:
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(); 
    }
 
}
Классу RawObject добавим список свойств которые можно изменять
public var properties:Array;

Если выделить на экране ScreenObject, то инспектор свойств получит ссылку на этот объект, возьмет из него RawObject в котором хранятся все доступные для изменения свойства. Пробегаем массив. Строим формочку для отображения свойств.
Когда юзер изменил свойство и нажал "ок", то у соответствующего свойства вызываем setPropertyValue, а у экранного объекта вызываем draw(), чтобы обновить графическое представление изменившейся модели

Добавлено через 5 минут
expl, я отредактировал пост. PolygonSerializer заменил на Format1PolygonSerializer. У меня мысль тут такая: Количество классов сериалайзеров = количество фигур * ко-во форматов