我一直在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项目并不关心。