![]() |
Экспорт классов не в первый фрейм.
Вот возникла такая проблема:
создаю новый документ, присваиваю ему document class. В этом классе отслеживаю загрузку и затем даю команду play(). Во втором фрейме на временной шкале создаю мувик, присваиваю ему свой собственный класс( допустим MyClass, при этом галочку экспорт в первый фрейм снимаю). Затем из document class отслеживаю когда наступит 3й фрейм и там создаю новый клип командой var mc=new MyClass();addChild(mc); Так вот проблема: если в настройках публикации установить экспорт классов во второй фрейм( или в любой другой, отличный от первого), то мувик не создается. В чем может быть проблема? |
Проверь, работает ли вообще Document class. А лучше прицепи исходник, ковырну (самому лень ваять :D).
|
Вложений: 1
document class работает.
исходник прикрепил. Сейчас там в настройках публоикации стоит первый фрейм для экспорта классов и голубой прямоугольник создается, а вот если для экспорта поставить второй фрейм, ничего не создается и даже конструктор не выполняется. |
Для начала: код должен быть либо в классе, либо в кадрах. Одно из двух.
Далее, судя по всему экспорт во второй кадр либо не пашет, потому как первый кадр самый тяжелый, либо в первый кадр идет экспорт только Document class. Сам объект Sq существует (и конструктор вызывается), но не существует его контента. Вероятно, сей момент нужно, видимо, уточнить в хелпе. |
конструктор не вызывается. Об этом говорит трейс, т.к. выводит "A" только один раз( для того мувика что во втором фрейме).
И, я так понимаю, что при экспорте классов во второй фрейм, в первый экспортится только документ класс ЗЫ, код в кадрах вбил пытаясь наконец понять, почему не работает. |
Да ну? У меня при попытке создать в первом кадре клип вызвался конструктор. И в третьем тоже. А вот во втором никакого вызова конструктора не произошло как раз.
|
ааа:) ну это не шибко меняет дело, контент то теряется. И сей факт довольно критичен т.к. если это ошибка в самом флэше, для создания больших проектов, придется делать ещё один свф, который будет грузить в себя основной документ т.к в основном документе, из-за того что все будет валиться в первый фрейм прелоадер теряет свой смысл.
|
Нужно проштудировать хелп, судя по всему. Только вот лично мне совершенно не хочется заниматься этим :D
|
да что-то я в этом хелпе не нашел ничего по этому поводу.
|
ну что? есть продвижения? как решился вопрос?
|
Да пока никак, в общем-то. Острой необходимости в экспорте во второй кадр у меня пока не было, но вообще есть некоторая неясность с переходами по кадрам. Как можно уже было заметить, конструктор вызывается, а контента-то нет…
|
Цитата:
|
Мое практическое исследование данного вопроса:
http://dev.etcs.ru/blog/as3/export_i...ame_flash_cs3/ |
__etc спасибо!
А если не трудно, можешь пояснить вот эту строку: var programClass:Class = loaderInfo.applicationDomain.getDefinition("Program") as Class; ведь именно она исправляет обсуждаемую проблему, но суть её понять не получается |
Суть далеко в недрах AS3 :)))
Главное знать, что in fact, класс Program есть новый Document class, который будет создан после загрузки флешки. А настоящий Document class выполняет роль прелоадера. |
:)
Да, но все таки любопытно, так все было задумано или это все таки баг |
Не знаю, как всё было задумано, но getDefinition в первую очередь предназначался для использования классов из внешнего клипа. Как выяснилось, это работает и в пределах текущего клипа.
|
Да я уже копнул в хэлпе про aplicationDomain и getDefinition. Полезная, однако, штука. Можно будет делать все в одном свф а в другие только запихивать классы и подгружать все это дело когда надо.
Но все таки твое решение экспорта не в первый фрейм сильно смахивает на шаманство, думаю все таки в адобе не доглядели:) |
Не знаю, насколько это шаманство, но работает. Мое дело предложить — ваше дело отказаться.
|
Отказываться не будем:) Ещё раз спасибо.
|
| Часовой пояс GMT +4, время: 10:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.