2017-04-20 93 views
-1

我一直在Flash Builder中开发Web类型的Flex项目。在这个项目中,我一直试图使用SWFLoader加载一个swf文件。我在调试器工作时遇到了麻烦,所以我创建了一个完全相同的Air项目,我可以运行和调试(使用脚本保持最新状态)。我已经成功地在我的Air项目中加载了swf文件,没有任何问题。但是,当我在Web项目中测试这个时,SWFLoader似乎不起作用,我只是得到一个空白区域,我的SWFLoader元素应该显示加载的swf文件。SWFLoader在空气项目中工作,但不是Web项目

private function get_swf_file_binary_amf(event:ResultEvent):void { 
      Alert.show("SWF Returned"); 
      var decoder:Base64Decoder=new Base64Decoder(); 
      decoder.decode(event.result); 
      var swf_bytes:ByteArray=decoder.toByteArray(); 

      var context:LoaderContext=new LoaderContext(); 
      context.allowLoadBytesCodeExecution=true; 
      context.parameters = {myval: "test_string"}; 

      swf_loaded_file.loaderContext = context; 
      swf_loaded_file.addEventListener(Event.COMPLETE, loadComplete); 
      swf_loaded_file.load(swf_bytes); 
     } 

private function loadComplete(completeEvent:Event):void{ 
    trace("load Complete") 
} 

上面就是我的Adobe AIR项目工作的代码。我正在接收我的swf文件的二进制数据,并将其转换为ByteArray,而不是像许多示例所示那样使用URLLoader。当我尝试在我的Web项目中运行时,这可能是我的问题的原因吗?

编辑/更新:我已经找到了具体的线路,其中Web项目失败: context.allowLoadBytesCodeExecution=true;

我仍然不知道为什么我的Web项目不喜欢这一行,但我的AIR项目并不关心。

回答

1

我已删除了诅咒系:

context.allowLoadBytesCodeExecution=true;

这似乎已经解决了这一问题。我甚至不太确定这条线是什么,我刚刚从教程中完成了。摆脱它似乎没有打破我的Air项目中的任何工作,所以我认为这解决了我的问题。

相关问题