Различия Loader.load и Loader.loadBytes - PullRequest
2 голосов
/ 18 ноября 2010

Я загружаю as2 swf в приложение AIR.Он работает правильно при загрузке из файла .Но при загрузке из байтов он каким-то образом ломается (реагирует на мышь, но некоторые элементы неактивны)

var bytes:ByteArray = ... //loaded from resources
var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext(false);
context.allowCodeImport = true; //this is neccessary
// Method 1 - blocks some scripts in loaded SWF
//context.applicationDomain = new ApplicationDomain();
// (application domain has no effect with as2 swf)
//context.securityDomain = SecurityDomain.currentDomain; //gives error 2114: securityDomain must be null
loader.loadBytes(bytes, context);
// Method 2 - loads properly
//loader.load(new URLRequest(file.url));

Так почему бы просто не загрузитьэто из файла?Мои ресурсы защищены шифрованием, и я не могу сбросить их на диск - они все равно должны быть защищены.

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

Существует аналогичный вопрос , но в моем случае as2 вызывает больше проблем.

Ответы [ 3 ]

4 голосов
/ 19 ноября 2010

AS2 и AS3 используют разные среды выполнения (байт-код отличается), поэтому вы не сможете правильно выполнить любой байт-код AS2 во время выполнения AS3. вы в основном внедряете код AS2 в приложение AS3, поэтому он не будет работать: /

2 голосов
/ 20 ноября 2010

Согласно документации для LoaderContext свойство applicationDomain следует использовать только при загрузке SWF-файлов ActionScript 3.0. Попробуйте сбросить этот параметр (или установить его в ноль) и посмотреть, что произойдет.

0 голосов
/ 27 марта 2019

Похоже, что старые SWF-фильмы (AS1 и AS2, для которых требуется AVM1), загруженные в приложение AIR с load, помещаются в свои собственные домены, но загруженные с loadBytes разделяют домен. Поэтому, если у вас есть несколько SWF-файлов AVM1, загруженных с loadBytes, их свойства _global будут засорять друг друга. Это влияет на компоненты пользовательского интерфейса Flash MX (около 2002 г.).

Я не могу быть единственным, кто пытается упаковать древние файлы Flash в приложениях AIR, поэтому я полагаю, что эта информация может кому-то пригодиться.

...