Внешний swf-файл во Flash builder

#actionscript-3 #flash-builder

#actionscript-3 #flash-builder

Вопрос:

Я встраиваю внешний swf-файл во Flash builder следующим образом:

 [Embed(source="assets/sounds/mytestswf.swf")]
private static var mySwf: Class;
 

Как я могу получить к нему доступ и добавить его в другой спрайт на сцене?

Ответ №1:

я не думаю, что вам нужен загрузчик, это для библиотек, которые добавляются во время выполнения. Embed компилирует ресурсы непосредственно в swf, поэтому addChild(new mySwf()); достаточно добавить его в список отображаемых объектов.

очевидно, что вы хотели бы присвоить его переменной, поэтому

 var $mySwf:mySwf = new mySwf();
addChild($mySwf);
 

Кстати, вы должны называть свои классы последовательно. Имена классов начинаются с заглавной буквы, поэтому вы можете отличить их от переменных

 [Embed(source="/assets/sounds/mytestswf.swf")]
private static var MySwf: Class;
...
var $mySwf:MySwf = new MySwf();
addChild($mySwf);
 

Комментарии:

1. на новом FB 4.7 я думаю, вам нужно будет добавить косую черту в начале («/assets/yourswif.swf»), чтобы предотвратить ошибки. Также убедитесь, что вы не используете относительные пути, такие как ../..

Ответ №2:

Во-первых, вам нужно указать mimeType="application/octet-stream" на вашем Embed . Затем вам нужно создать Loader экземпляр и использовать Loader.loadBytes() метод для загрузки ByteArray связанного со встроенным классом:

 var bytes:ByteArray = new mySwf();
var loader:Loader = new Loader();
loader.loadBytes(bytes);
addChild(loader);
 

Ссылка для изучения: метод Loader.loadBytes()

Комментарии:

1. См. Примечание выше о добавлении mimeType объявления к Embed вызову.

2. Пожалуйста, уточните «не работает» — есть ли ошибка, или код в загруженном SWF-файле не выполняется и т. Д.?