Показать сообщение отдельно
Старый 13.08.2008, 13:57
Alkaz вне форума Посмотреть профиль Отправить личное сообщение для Alkaz Найти все сообщения от Alkaz
  № 1  
Ответить с цитированием
Alkaz

Регистрация: May 2006
Адрес: Нск
Сообщений: 91
По умолчанию как включить в swf неиспользуемые классы?

Извиняюсь за непонятную формулировку. В общем проблема такая:
Есть приложение и есть модули к нему. Допустим у нас загружен модуль VideoPlayer реализующий интерфейс IVideoPlayer, и мы грузим модуль Subtitles, после загрузки в Subtitles срабатывает код наподобие такого:
Код:
mainModel.videoPlayer.addChild(this);
trace(parent as IVideoPlayer); //null
Путем экспериментов выяснил что если использовать этот интерфейс в основном приложении (т.е. он будет включен в главную swf) то все ок:
Код:
trace(parent as IVideoPlayer); //VideoPlayer
но для этого приходится использовать неудобный костыль в основном приложении:
Код:
import plugins.VideoPlayer.IVideoPlayer;
...
private function includeInterfaces():void
{
       	var iVideoPlayer:IVideoPlayer;
}
т.к. просто импорт еще не означает что класс будет включен при компилировании.
Собственно вопрос как сделать так чтобы нужные мне интерфейсы включались в главное приложение без их непосредственного использования?
И еще один вопрос из любопытства почти на ту же тему.
VideoPlayer.as
Код:
...
trace(getQualifiedClassName(this)); // test.video::VideoPlayer
...
Subtitles.as
Код:
mainModel.videoPlayer.addChild(this);
trace(getQualifiedClassName(parent)); // test.video::VideoPlayer
trace(parent as VideoPlayer); // null
И так происходит опять таки до тех пор пока в главную свф при компиляции не будет включен класс VideoPlayer. Почему?