AS3 и Swfmill:Как получить доступ к ресурсам в swfmill-сгенерированной библиотеке swf
-
18-09-2019 - |
Вопрос
Я создаю библиотечные swfs-файлы в as3 таким образом, работает как шарм (за исключением медленного компилятора mxmlc).:
package {
import flash.display.Sprite;
public class Library extends Sprite {
[Embed(source="assets/test.png")]
public var TestBitmap:Class;
}
}
Я хотел бы создать такую же библиотеку, используя swfmill.Я попробовал следующий swmfill simple 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 будет экспортировать классы таким образом?Если нет, то есть ли способ доступа к символам без создания их экземпляров как классов?
Джонас
Решение
Короче говоря, нет.Я тоже занимался этим вопросом.Поскольку я работаю с IDE Flash, Haxe и flex, я опишу различные методы доступа к контенту путем встраивания его в swf-файл.
Не похоже, что существует способ прямого создания экземпляра символа.Если ваши ресурсы были экспортированы с помощью интегрированной среды разработки Flash, обычно вы устанавливаете свойства для экспорта, чтобы Actionscript мог получить доступ к символу.В Haxe вы бы указали класс, соответствующий классу в swfmill xml.С помощью 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.