![]() |
Проблемный класс во внешнем SWF
Вложений: 1
Добрый день!
Возникла проблема слудющего характера. Подргужая внешнюю библиотеку в виде swf с классом внутри, главный SWF не находит этот класс ( причем ~ в 49 случаев из 50! ) в ней.: Уверен, что пытаюсь сделать это правильно, так как если удалить этот класс со всеми потрохами ( он несколько многоуровневый и содержит другие классы внутри ) и заменить его простым, то главный SWF находит простой класс очень легко. Чтобы наглядно показать ситуацию, я выдрал этот проблемный класс из проэкта, с его nтестовым лоадером и приложил к посту (cs5). Main.swf грузит в себя bottomPanel.swf, пытаясь выдрать [BottomPanel] с помощью Код AS3:
Пожалуйста, кто встречался с такой бедой, подскажите в чем может быть дело?! |
Люди, очень извиняюсь за то, что поднимаю тему, но этот вопрос достаточно критичен для меня. Я даже выложил исходник, чтобы можно было быстро узреть проблему! Нужели никто из гуру не знает ответа?
|
getDefinition('BottomPanel')
ты ничего не добъешься, тк флеш ещё может не распарсил swf и не поднял классы. Почитай про RSL (Runtime Shared Library). Может решит проблему |
А нельзя это как-то без FLA оформить, а то так даже не понятно в чем проблема...
|
В смысле "без fla оформить"? Проблема в том, что класс описанный внутри одного подргужаемого swf, не может быть создан. Копаю в сторону Runtime Shared Library, но пока безуспешно. Примеры найденные мной работают, но как только я пытаюсь повотрить это с моим классом "BottomPanel" - fail.
|
Ну вот например нету у меня Flash CS - не получится у меня вам помочь при всем желании, т.как я не знаю, что там у вас в этих FLA файлах. Судя по тому, что есть в SWF вы используете какие-то fl.* компоненты, а что вы с ними делаете - я понятия не имею, и декомпилировать не хочется.
|
при подгрузке внешнего swf:
1. контекст явно указываешь? 2. на какое событие подписываешься? |
Перенесите всё в классы (графику используйте только как asset'ы), добавляйте её в классах и используйте в классах.
Не приписывайте через flash-ide мувиклипам какие-либо классы, вся проблема у вас в этом. Вообще используйте fla только как контейнер для графики (чтобы её править внутри и всё). У flash-ide очень странное поведение при подобном распределении функциональности мувиклипов. Добавлено через 9 минут если после загрузки подождать от 3 до 5 фреймов то ваш класс найдется. проблему эту я до сих пор и не понял потому что init вызывается раньше комплита у loaderInfo, но после инита недоступны методы, код и объявленные классы. по прошествию же 5 фреймов легко можно их забрать. Добавлено через 15 минут Код AS3:
|
mayakwd, прямо не знаю что сказать.
скомпилил в отдельную swf графику, привязал к ней классы прямо во Flash IDE, добавил еще пару классов. подгружаю все это обычным способом, явно указываю контекст, жду INIT-а и сразу же использую классы из подгруженного swf. что я делаю не так? |
скомпильте то что у человека и проверьте =)
у меня поведение точно такое же как и у него. после ожидания 3-5 фреймов все работает. я не знаю что вы делаете не так и что я делаю не так. |
| Часовой пояс GMT +4, время: 07:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.