AS3 и Swfmill:Как получить доступ к ресурсам в swfmill-сгенерированной библиотеке swf

StackOverflow https://stackoverflow.com/questions/1685959

Вопрос

Я создаю библиотечные 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top