Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Реализация MVC (http://www.flasher.ru/forum/showthread.php?t=86233)

NewMan_by 10.10.2006 19:21

Реализация MVC
 
Переделываю проект с AS2 на AS3, проект сделан по принципу Model-View-Controller. Необходимо, чтобы наша модель рассылала события View-шкам и при это ничего не знала об этих вьюшках.
Проблема в том, что если я делаю в модели
Код:

this.dispatchEvent(new Event("customEvent"));
// а в классе View
this.addEventListener("customEvent", this.init);

То есть "слышит" это событие только сам класс в котором я это делаю, а мне нужно чтобы мои View-шки тоже "слышали". В чем причина? как это сделать?

etc 10.10.2006 19:27

А почему ты не подписываешься внутри View на модель? Или ты не хочешь создавать ссылку на модель?

Nirth 10.10.2006 19:32

this в первой строке ссылается на модель, а на что она ссылается в третьей строке?

NewMan_by 10.10.2006 19:37

Nirth на View

NewMan_by 10.10.2006 19:38

Цитата:

Сообщение от __etc
А почему ты не подписываешься внутри View на модель? Или ты не хочешь создавать ссылку на модель?

как ты предлагаешь подписыватся?

Nirth 10.10.2006 19:40

так если ты подписываешься на событие модели, то выглядеть должно так
Код:

myModelInstance.addEventListener("eventType",this.handler);

etc 10.10.2006 19:41

Цитата:

Сообщение от NewMan_by
как ты предлагаешь подписыватся?

Написать IoC-контейнер и связать View с Model.
Но, я думаю, это лишнее…
И вообще, если ты использовал EventDispatcher в AS2, то работа с ним в AS3 мало отличается. Просто там нужно посылать не объект со свойствами, а наследник Event (или сам Event, если спец. свойств не нужно).

NewMan_by 10.10.2006 20:03

сделал во View
Код:

this.model.addEventListener("customEvent", this.init);
не помогло

etc 10.10.2006 20:06

this.init — что это? Что есть this? Что есть this.model?

Nirth 10.10.2006 20:08

я написал примерный-абстрактный код, использовать его as is слегка наивно, покажи листинг модели, контролера и представления, хотя мне кажется там модель-делегат а не вид и контроллер, я прав?


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

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