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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.11.2012, 08:57
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 31  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
2 Wolsh

Цитата:
А после десериализации ваша программа будет иметь только Путь, набор соединенных точек?
И редактировать полигон как Полигон уже будет невозможно?
Все "диалоги" будут только до момента сохранения?
Да, программа будет иметь кучу точек и команд вида lineTo и curveTo прямо как в AS3 advanced drawing API. Все настройки - в диалоге при рисовании. Если получился неудачный объект - перерисовываем с новыми параметрами. Так, вроде, сделано во Flash IDE.
Редактировать будет можно, но только перемещением якорных точек, движением целых линий и вершин.

2 terbooter
Цитата:
Таким образом экономится память, так как можно отрисовывать графику только ту, которая находится в видимой области.
Ненужные спрайты убирать с экрана, но данные обо всех объектах будут в памяти.
Интересно, на сколько будет разнится использование памяти если использовать Sprite как родители или свой класс. Ведь если наследоваться сразу от Sprite, то его graphics можно очищать после удаления со Stage.
Цитата:
Что касается инспектора свойств, то я сделал бы так.
Каждое свойство загнать в интерфейс. Обычно бывает много одинаковых свойств, поэтому можно несколько свойств помещать в один интерфейс расширяя интерфейсы. Тут зависит от того какие будут у вас объекты.
Само же свойство сделать отдельным объектом
Колеблюсь между подобным тру-подходом и прямыми ссылками, которые предлагает expl. Подход expl упрощенный, ваш подход более сложный, но более гибкий если приложение разрастется. Думать буду

Добавлено через 1 час 11 минут
2 alatar:
Цитата:
Насчет архитектуры я бы посоветовал обратить внимание на пакет spark.primitives из Flex framework. Отличная структура и расширяемость.
Скорее всего не получится т.к. мои примитивы должны уметь отрисовываться с использованием multi-style stroke (типа штрихпунктирные линии, а в будущем и линии смешаных типов (красный штрих, черный штрих, градиентный штрих...)). То есть все равно придется писать свои методы отрисовки, а значит, особого смысла наследоваться от spark.primitives нет.

Добавлено через 3 часа 42 минуты
2 Wolsh:
Придумал еще один вариант: можно действительно не отнимать у графических примитивов их свойств, чтобы обеспечить большую интерактивность для юзера. Прямо как в вашем примере со звездой. Другими словами, можно оставить уникальные свойства объектов (как в случае звезды: внешний радиус, внутренний радиус, кривизна лучей итд.), но добавить возможность преобразовывать их в объект типа Path (состоящий из координат-команд). Возьму это на заметку!


Последний раз редактировалось Vasyaga; 10.11.2012 в 10:10.
Старый 10.11.2012, 14:59
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 32  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Я говорил не о наследовании, а о примере архитектуры.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 10.11.2012, 17:20
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 33  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
alatar, понятно. Ну у меня вроде что-то подобное и должно получиться

Старый 10.11.2012, 23:14
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 34  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Придумал еще один вариант... но добавить возможность преобразовывать их в объект типа Path (состоящий из координат-команд).
Это стандартная процедура break apart (Adobe), convert to curves (CorelDraw). Естественно, если Вы собираетесь сохранять во внешние форматы, не поддерживающие примитивы, Вам придется делать это прямо в сериализаторе. Но для такого мощного редактора, который Вы описали, было бы непростительно терять возможность сохранения ПРОЕКТА для последующего редактирования, то есть в таком собственном формате, который сохранит буквально все возможности редактора (как PSD для Photoshop. Представляете, если бы фотошоп мог сохранять только в jpeg или png...)
И есть еще один момент, не такой уж актуальный, но все же. Записать инфу о примитиве Вы можете буквально в 5-6 свойствах. А представляете, сколько точек содержит такая вот звезда о 24 лучах со скруглениями? Набор координат для одного скругления одной вершины одного лучика потребует сохранить больше данных, чем для всего примитива. И это не только к звезде относится. Круг, овал, прямоугольник, особенно со скругленными углами. Все эти примитивы уже есть в графиксе. Не так уж много остается добавить своих — правильный полигон да спирали. Ну может со временем еще что-то придумается, может быть, специальные наборы заготовок для схем (алгоритмов, электроники и т.п.))). Я бы постарался оставить здесь свободу для маневров. Вплоть до возможности написания пресетов отдельно и загрузки таких "плагинов" в рантайме. Это не так сложно, как кажется. Но без расширяемости смысла у приложения не будет. Будет очередная игрушка-графити с хардкодом, неспособная оправдать потраченные на нее силы(!).
__________________
Reality.getBounds(this);

Старый 11.11.2012, 01:40
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 35  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Vasyaga Посмотреть сообщение
Что лучше - в каждый класс графического объекта добавить методы по сереализации/десереализации или делать считывание/сохранение отдельными классами?
Второе, однозначно. Модели могут кочевать из проекта в проект, а протоколы всегда разные.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 11.11.2012, 11:34
Vasyaga вне форума Посмотреть профиль Отправить личное сообщение для Vasyaga Найти все сообщения от Vasyaga
  № 36  
Ответить с цитированием
Vasyaga

Регистрация: Feb 2009
Адрес: WS
Сообщений: 93
Wolsh, уже действую в этом направлении

Добавлено через 8 минут
По поводу плагинов тоже есть задумки, но, боюсь, времени не хватит на реализацию - как обычно проект нужен здесь и сейчас. Более того, существует рабочая версия на AS2. Но ее код ужасен и страшен, писался последовательно многими людьми, компилится во Flash IDE около минуты. Отрефакторить невозможно - проще с нуля написать, взяв основные идеи. Как пример ужасного кода - имеется один! класс, в котором описаны все возможные варианты графических объектов редактора. Этот файл весит больше 100 Кб и были случаи, что компилятор вываливался с ошибкой из-за размера файла. Приходилось удалять ненужные строки Так что, мигрирую на AS3, стараясь создавать себе поменьше граблей в будущем.

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

Теги
архитектура , паттерн , Проектирование
Опции темы
Опции просмотра

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

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


 


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


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