Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Document class создается не первым (http://www.flasher.ru/forum/showthread.php?t=113215)

NewFolder 21.06.2008 23:58

Document class создается не первым
 
Простая флешка. На сцене находится только один муви клип. Он при создании должен подписаться на событие главного класса. Так вот у клипа конструктор вызывается перед конструктором Document class'a, что приводит к рантайм ошибке.

На сколько это нормально? И что делать в таких ситуациях?

wvxvw 22.06.2008 00:43

1. подписывать из Документ-класса (криво, но идея использования объектов на сцене + документ класса сама по себе кривая...)
2. слушать ADDED_TO_STAGE у стейджа, если таргет события == Документ-класс - подисываться... (ну тоже красивым решением не назовешь...)

NewFolder 22.06.2008 03:21

Цитата:

Сообщение от wvxvw (Сообщение 747006)
идея использования объектов на сцене + документ класса сама по себе кривая...

Чем обосновывается кривизна идеи?

wvxvw 22.06.2008 22:14

Потому, что Документ-класс должен инициализироваться первым, иначе логика приложения нарушается.
Например, если нужно "перезапустить" все приложение - но, если его запуск зависел от какого-то клипа на сцене, который мог быть удален в процессе работы - никакого перезапуска не получится.

NewFolder 23.06.2008 01:41

Цитата:

Сообщение от wvxvw (Сообщение 747160)
Потому, что Документ-класс должен инициализироваться первым, иначе логика приложения нарушается.
Например, если нужно "перезапустить" все приложение - но, если его запуск зависел от какого-то клипа на сцене, который мог быть удален в процессе работы - никакого перезапуска не получится.

Так в этом то и вопрос: почему документ класс создается не первым :)

Объясню ситуацию, чтобы было нагляднее.
Есть эмулятор телефона. На нем есть экран и клавиатура. Экран при создании должен подписаться на события клавиатуры. К клавиатуре он пытается достучаться через документ класс (он ведь главный, и содержит этот клип). Но почему-то экран создается быстрее самого документ класса, что и приводит к ошибке.

Проблему то решил созданием объектов в конструкторе документ класса. но все равно этот вопрос меня интересует. Как-то нелогично получается.

badun 23.06.2008 02:21

Пусть стучится до класса документа по ADDED или ADDED_TO_STAGE.
Логичнее было бы если из конструктора класса документа не были бы доступны мувики созданные в среде?

wvxvw 23.06.2008 02:58

Ну... а мне почем знать почему он раньше создается? =) Т.е. почему - я примерно могу себе представить, а вот зачем так сделано - не знаю =) Мало ли фич, которыми лучше не пользоваться не смотря на то, что технически их сделать никакого труда не составит =)
badun:
не, логичнее было бы, если бы мувики созданные в среде создавались последовательно после того, как будет создан "главный" мувик - он же документ класс =) они ж по идее его "дети" как ж это они вперед "батька"? =)

badun 23.06.2008 03:31

Если бы они создавались после главного мувика, они не были бы доступны в его конструкторе. Как в таком случае достучаться до них, ловить каждого на стадии bubbling события ADDED?

wvxvw 23.06.2008 04:11

Чесно - я вообще за рантайм ошибку при создании чего бы то ни было "не проконсультировавшись" с Документ классом с примерно таким текстом: "Alas! 3999(a): Ye shall not reap yet thy sow!" =) Но, если это неизбежно - ну, да... слушать когда добавили... а что?
*Благо наш QА не подозревает о существовании дебаг плеера... :rolleyes: *

badun 23.06.2008 04:57

по-моему все-таки проще чтобы каждый ребенок слушал когда его добавили ))


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

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