У меня есть следующие два проекта в в Flex Builder 3:Как использовать тег [mixin] в приложениях AS3?
Один AS3 проект библиотеки (генерирует SWC-файл)
Один проект приложения Flex (MXML приложений)
Приложение MXML Application к проекту библиотеки AS3 (путь построения Flex). Все идет нормально. Теперь я хочу запустить код автоматически, когда приложение использует библиотеку AS3. Тег [mixin] должен делать именно то, что мне нужно.
Я выполнил инструкции от http://nondocs.blogspot.com/2007/04/metadatamixin.html и проверил проект AutoQuick. Последний является примером проекта Adobe, в котором показано использование инфраструктуры автоматизации. В этом проекте они используют тег [mixin] (класс AQAdapter).
Я следовал примерам, но мой код не работает. Статический метод init не вызывается. Я добавил библиотеку в список аргументов компилятора, который тоже не работал.
Как я могу заставить это работать?
/* class to be automatically loaded */
package {
/* includes */
[mixin]
public class TestApp extends Sprite {
/* additional members */
private static var mContainer:DisplayObjectContainer;
private static var mInstance:TestApp;
/**
* @private
*/
public static function init(root:DisplayObject):void
{
if(!mInstance)
{
mContainer = root as DisplayObjectContainer;
mContainer.addEventListener(FlexEvent.APPLICATION_COMPLETE, applicationCompleteHandler);
}
}
}
}
Тег [Mixin] (первая буква в верхнем регистре!) Должен быть использован и ссылка, как "тест вар: TestApp;" достаточно для вызова статического кода. –
Компилятор option -include = ClassName загружает класс в любом случае, поэтому не нужно добавлять ссылку в код. –