Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Чудеса асинхронного исполнения. (http://www.flasher.ru/forum/showthread.php?t=173074)

Zebestov 23.12.2011 04:03

Цитата:

Сообщение от fish_r (Сообщение 1053205)
Да, речь про MVC и есть.

В любом MVC ни при каком раскладе и ни на каком этапе выполнения приложения входной точкой не должен становиться view, для которого все же существует controller. У меня он тоже "тонкий", но входная точка на каждом этапе приложения — именно контроллер. Именно он всех инициирует, собирает докучи и запускает в нужном порядке. Если не поздно — подумай над реорганизацией.

TanaTiX 23.12.2011 04:04

А gc его съесть не мог?

BuKT 23.12.2011 07:35

Цитата:

Во флеше нет параллельного исполнения. Когда вы диспатчите событие, прямо в этот момент и отработают все слушатели, как будто их прямо тут и вызвали. Думаю косяк у вас в этом.
Мне кажется, не совсем так. Когда диспатчится "асинхронное" событие (лоадеры, например), то оно кладётся в стек ожидания, который начинает последовательно обрабатываться слушателями на следующем enter-frame
Цитата:

Если не поздно — подумай над реорганизацией.
А разве mvc это оковы правил? Я то всю жизнь думал, что "Mein MVC" это один из способов организовать архитектуру так, как удобно мне и моим людям. [pathos mode off]

UPD: Прошу простить, если кого обидел своей крамольностью. Здесь, выше, и далее MVC as Mein MVC [+corrupted]

Aquahawk 23.12.2011 08:22

Цитата:

Когда диспатчится "асинхронное" событие (лоадеры, например), то оно кладётся в стек ожидания, который начинает последовательно обрабатываться слушателями на следующем enter-frame
Конечно, я имел в виду то что так делают только нативные события. Когда из сам диспатчишь они тут же отрабатывают.

Zebestov 23.12.2011 08:26

Цитата:

Сообщение от BuKT (Сообщение 1053213)
А разве mvc это оковы правил? Я то всю жизнь думал, что "Mein MVC" это один из способов организовать архитектуру так, как удобно мне и моим людям.

Ну и славно! Просто придумай названия для каждого "из способов организовать архитектуру так, как удобно мне и моим людям" и не применяй попусту аббревиатуру MVC. Потому что MVC — это, как известно, тоже некое множество способов, но с определенными признаками и свойствами. Одно из свойств: не "управляет" там вьюха процессами приложения.

silin 23.12.2011 14:58

Цитата:

Сообщение от fish_r (Сообщение 1053183)
1. Вьюер инициализирует контролл, сохраняет на него ссылку.
...
10. Вьюер обращается к контроллу

В результате последнего возникает ошибка: Контролл равен null (!!!)

извиняюсь, что ничего по делу, но меня заинтриговала сама постановка
ведь это чтож получается, фигня полная получается, ведь не важно же что там происходит между 1 и 10 пунктами (если конечно никто там спецом не занимается убийством контролов)
или Вьюер таки не сохраняет ссылку..
в общем, хотелось бы пощупать действующий макет явления

carrotoff 23.12.2011 15:39

А почему бы не сделать по фэн-шую? Ну, фактически, то, что предложил Zebestov.

Инициализируем контроллер, который в свою очередь создает модель и вьюху, вьюхе даем ссылку на модель либо интрфейс, который она реализует.

Aquahawk 23.12.2011 15:43

fish_r
Вы уже всех заинтересовали, иcходники в студию!

fish_r 23.12.2011 17:25

Вложений: 1
В общем, как и предполагал, к последовательному выполнению приводит обращение SharedObject.getLocal().
По прежнему, однако, остается загадкой - почему так?

В аттаче пример который, как мне кажется, более менее иллюстрирует ситуацию (для FD).

i.o. 23.12.2011 17:37

ыыы :)
Дак присвоения _shObject еще не произошло, пока отрабатывает конструктор SharedObjProvider :)

Добавлено через 3 минуты
Если init() убрать из конструктора SharedObjProvider, а код в Main модифицировать так:
Код AS3:

_shObject = new SharedObjProvider(this);
_shObject.init();

то все будет работать.
Цитата:

1324644024493.1 Main, init, :
1324644024521. Main, nextMethod, : [object SharedObjProvider]
1324644024526. SharedObjProvider, init, :
1324644024528.2 Main, init, :


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

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