|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
MouseEvent: Разделение кода на классы.
Есть небольшой, простой код:
package { import flash.display.*; import flash.text.*; import flash.events.*; public class MouseTrigger extends Sprite { private var text1:TextField; private var clickCounter:uint = 0; public function MouseTrigger() { textInit(); mouseInit(); } private function textInit() { //--- MouseClick textfield setup ---// text1 = new TextField(); text1.text = "MouseClick"; text1.selectable = false; text1.autoSize = TextFieldAutoSize.LEFT; addChild(text1); } private function mouseInit() { text1.addEventListener(MouseEvent.CLICK, clickTrigger); } private function clickTrigger(e:MouseEvent) { clickCounter ++; text1.text = "MouseClick: triggered " + clickCounter.toString() + " times"; } } } Наверное, это что-то связанное с термином MVC, и тогда я могу предположить, что: первый это - Контроллер (= Document Class), второй - Модель, третий - Вью. Пробовал разными вариантами, но неполучалось. Проблемы возникют различные: на уровне абстрактной передачи классу MouseTrigger инфы о текстовом поле, или например на уровне addChild (ошибок нет, но и текстфилда нет), и т.п. Я мог бы привести кривые коды, но наверное в этом нет смысла. Не могли бы вы показать как это грамотно сделать? Уместно ли вообще для такого короткого кода использовать MVC? Впрочем, привязка к MVC необязательна, если можно разбить этот код на три части другим способом, тоже хорошо. |
|
|||||
для такого - не уместно, но если вопрос - поразмять мышыцы, то примерно так:
контроллер, он не наследник ДО, он обжект, в который передается ссылка на главный контейнер (рут, вероятнее всего). создали в руте, передали ссылку на конетейнер...в нем созадете свой вью(мувик с текстфилдом), создаете модель (в вашем примере ее нет). передаете ссылку на модель в вью и там слушаете изменения модели и меняете вью. контроллер слушает клик вью и меняет модель, модель диспатчит событие об изменении, вью, слушая это событие меняется) чего-то много букв я написал и, скороее всего, не понятно ))
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
Вот Ваш пример кода, только сделан через простейший MVC шаблон - это так, для разминки головы.
Я думаю, Вам многое будет не понятно, что и как между собой связанно. Я бы посоветовал оставить MVC в покое и как Вам уже советовали пить кофе, в перерывах между чтением. Вы заблудились в "трех березах"(ваш пример с загрузкой фото), а в "трех кварталах города"(MVC) тем более потеряетесь.Не обижайтесь, всему свое время. |
|
|||||
Регистрация: Mar 2013
Сообщений: 290
|
cleptoman, да, навскидку мало что понятно : ) Нужно рисовать диаграмму со стрелочками, например.
Хотя в программе belv кое-какие мотивы просматриваются, например отсутствие Модели. Я не знаю, что такое ДО, видимо DisplayObject. belv, О! Большое спасибо за готовый пример. Цитата:
Понял где-то на 40% наверное. Операторы сами по себе понятны, а вот их взаимосвязь - это остальные 60%. Не подозревал, что нужно будет привлекать общий дипспетчер событий и интерфейсы. Цитата:
Если вас не затруднит, не могли бы вы привести еще и наиболее простой пример разбиения этого кода на 3 класса? Было бы весьма поучительно (не только для меня, но и для всех новичков в AS3.0, читающих этот пост) сравнить сложный метод реализации этой задачи (через MVC) с наиболее простым. |
Часовой пояс GMT +4, время: 07:32. |
|
« Предыдущая тема | Следующая тема » |
Теги |
MouseEvent , MVC , разделение кода |
|
|