![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Здравствуйте все. Хочется элегантно решить ситуацию:
имеем swc с одним клипом, в нем куча мелких клипов-элементов. Целесообразно ли создавать отдельный класс со статическим (?) методом для парсинга этого клипа на составляющие? И как в таком случае отдавать полученное логике программы? Был вариант формировать Object, в логике парсить его. Но это двойная работа и, хоть, парсинг самого интерфейса будет сидеть красиво в отдельном не менее красивом классе, парсинг же конечно обджекта кажется каким-то нерациональным и портит всю элегантность. Хотелось бы узнать мнения знающих людей.
__________________
тут я |
|
|||||
|
я просто беру инстансы визуальных классов из свц, и скармливаю их некойоболочке, которая сверу накладывает логику.
_view = new Game_View(); // клип из свц addChild(_view); _controller = new Game_Controller(_view); // класс с логикой _controller.show = false; зачем вам статика я правда не понял( Последний раз редактировалось nOobCrafter; 21.01.2011 в 03:36. |
|
|||||
|
ну его же еще можно разбить, вам же не обязательно в одном классе хранить всю логику элементов? нашли там клип для меню, скормили менюшной логике, а та в свою очередь разобрала все по кнупочкам.
|
|
|||||
|
Не сосем понятна суть вопроса... Можно как то, пример что ли привести?
Добавлено через 6 минут Если речь идет о интерфейсе и MVC. То тут, мне кажется, лучше всего подходит вариант, когда мы наш вью наследуем от клипа, а затем уже непосредственно наследнике настраиваем связку с моделью и контроллером. Таким образом контроллер минимум знает о содержимом view... К примеру это все таки эпархия view, а не контроллера.
__________________
Искренне Ваш, Джек. Последний раз редактировалось JackFromChaos; 21.01.2011 в 03:57. |
|
|||||
|
Все равно я не до конца понял суть проблемы.
Лично я, обычно, накладываю логику путем наследования от графического клипа, и далее через публичные переменные которые там есть для всех членов(без getChildByName). Так же иногда делаю всякие утилитные классы, ну например очень простой вариант: public class Btn { private var _owner:Sprite; private var _label:TextField; public function Btn(owner:Sprite,text:String,onClick:Function) { _owner = owner; _owner.useHandCursor = true; _owner.buttonMode = true; _label = _owner.getChildByName("label") as TextField; if (_label) { _label.text = text; _label.mouseEnabled = false; } _owner.addEventListener(MouseEvent.CLICK, onClick); } public function get text(): String { if (!_label) return null; return _label.text; } public function set text(value:String):void { if (_label) _label._text = value; } } Сохранять ли указатель на Btn – вопрос уже чисто ситуационный... По разному может быть. к P.S. Пример, естественно, синтетический, но очень похожий на реальный код...
__________________
Искренне Ваш, Джек. Последний раз редактировалось JackFromChaos; 21.01.2011 в 04:18. |
|
|||||
|
Нет, вы поняли неправильно
![]() Мне нужно всего лишь распарсить один клип из swc на составляющие и скормить его содержимое разным вещам. Как это сделать лучше моего варианта, мне уже посоветовал nOobCrafter. Но если есть и другие способы - я буду рад их выслушать тоже, авось будет что-то оптимальнее и эстетичнее ![]()
__________________
тут я |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
А что значит "распарсить и скормить"?
Логика программы как потом с этими классами работает? Она знает их по именам? |
|
|||||
|
Хороший вопрос... я тоже вчера хотел спросить, но как то постеснялся...
![]() 2КорДум: А вы, извиняюсь, партизан ![]() В общем ввиду того, что я так и не понял, в чем заключается вопрос, пофантазирую ![]() Делаем класс «парсер», который на входе получает указатель на экземпляр символа а так же указатель на логический блок. Внутри перебираем все дочерние элементы, и в зависимости от префикса имени(например выделенного знаком «_») вызываем различные функции в логическом блоке, передовая им элементы. Ну, условно, что-то типа:
__________________
Искренне Ваш, Джек. |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|