AS3 & Swfmill: как получить доступ к ресурсам в сгенерированной swfmill библиотеке swf
Я создаю библиотеку swfs в as3 таким образом, работает как шарм (за исключением медленного компилятора mxmlc):
package {
import flash.display.Sprite;
public class Library extends Sprite {
[Embed(source="assets/test.png")]
public var TestBitmap:Class;
}
}
Я хотел бы создать такую же библиотеку, используя swfmill. Я пробовал следующий SWMFill простой XML:
<movie version="10">
Изучение библиотек в проводнике FlashDeveloper показывает, что библиотека as3 экспортирует ОБА классы и символы, а библиотека swfmill экспортирует ТОЛЬКО символы. Мое хост-приложение обращается к ресурсам библиотеки as3 следующим образом:
private var loader:Loader = new Loader();
private function onCreationComplete():void {
this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(e:Event):void {
var resourceClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("Library") as Class;
var resources:Object=new resourceClass();
var testBitmapClass:Class = resources['TestBitmap'] as Class;
var testBitmap:Bitmap = new testPngClass();
this.addChild(testBitmap);
}
Но без экспортируемых классов swfmill, очевидно, нечего навязывать...
Ожидается ли, что swfmill будет экспортировать классы таким образом? Если нет, есть ли способ получить доступ к символам, не создавая их экземпляры как классы?
Jonas
1 ответ
Короче нет. Я тоже изучал это. Поскольку я работаю с Flash IDE, haXe и flex, я опишу различные методы доступа к контенту, вставив его в swf.
Не похоже, что есть способ напрямую создать экземпляр символа. Если ваши активы были экспортированы с помощью Flash IDE, обычно вы устанавливаете свойства для экспорта, чтобы ActionScript получал символ. В haXe вы должны указать класс, соответствующий этому, в XML SWFMILL. С помощью flex вы определяете класс и используете тег метаданных Embed для доступа к символу путем встраивания swf. http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html
Этот скрипт, который может быть полезен для генерации классов экспорта. http://wiki.disemia.com/HaXe_SWFMILL_Resource_Converter
Если вы используете AS3, вам, вероятно, все равно придется использовать mxmlc, если вы компилируете свой проект из командной строки. Поскольку скорость является проблемой для вас, вы должны рассмотреть возможность использования fcsh.