Показать сообщение отдельно
Старый 09.04.2009, 10:34
eugenk вне форума Посмотреть профиль Найти все сообщения от eugenk
  № 1  
Ответить с цитированием
eugenk
Banned

Регистрация: Apr 2001
Адрес: Russia Moscow
Сообщений: 32
Отправить сообщение для eugenk с помощью ICQ
По умолчанию Как определить способ загрузки ?

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

Можно было бы попытаться оболочкой перехватывать вызов конструктора плагина и подсовывать ему нужные инициализации вместо умолчательных. Однако как я выяснил, после загрузки sfw-файла конструктор вызывается всегда. Причем до возникновения событий COMPLETE или INIT. И перехватить вызов конструктора у оболочки никак не получается. Другой способ - определять в конструкторе плагина, каким способом файл был загружен. И если он был загружен просто в плеер, стартовать с параметрами по умолчанию. А если его загрузила оболочка, не делать ничего и ждать правильной инициализации. К сожалению с этим тоже ничего не вышло. ExternalInterface.ObjectID почему-то всегда возвращает null если запускается в отдельном плеере и Main при запуске в Firefox. Вне зависимости от способа загрузки - непосредственно или с помощью оболочки через Loader.load. Вобщем я с этой задачкой так и не справился. Просто закомментировал весь код конструктора в релизной версии плагина. А когда его отлаживал, там была инициализация с удобными для отладки параметрами. Так что сейчас плагин у меня самостоятельно без оболочки запускаться не может. Мне оно не особо и надо. Но кто знает, вдруг пригодится ? Кто нибудь из благородных донов сталкивался с описанной ситуацией ? Можете поделиться решением ?