flex – 在AIR中使用bytearray加载Swf
发布时间:2020-12-15 01:48:42 所属栏目:百科 来源:网络整理
导读:我们要求AIR应用程序加载flex生成的swf,它使用SWFLoader加载flash生成的swf.这不符合要求.这会出现以下错误: SecurityError:错误#3226:当LoaderContext.allowCodeImport为false时,无法导入SWF文件. 这是我们的AIR应用程序. ?xml version="1.0" encoding="
我们要求AIR应用程序加载flex生成的swf,它使用SWFLoader加载flash生成的swf.这不符合要求.这会出现以下错误:
SecurityError:错误#3226:当LoaderContext.allowCodeImport为false时,无法导入SWF文件. 这是我们的AIR应用程序. <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="initApp()"> <mx:Script> <![CDATA[ import mx.controls.SWFLoader; [Embed(source="FlexLoadingFlash.swf")] public var flexMovie:Class; private function initApp():void { // First convert the Swf into MovieClip var movieclip:MovieClip = new flexMovie(); // get the byteArray from movieClip var byteArray:ByteArray = movieclip.movieClipData; var swfLoader:SWFLoader = new SWFLoader(); // load bytearray into swfLoader swfLoader.source = byteArray; swfLoader.maintainAspectRatio = false; swfLoader.percentHeight = vbox.height; swfLoader.percentWidth = vbox.width; swfLoader.invalidateDisplayList(); swfLoader.invalidateSize(); // now add the swfloader into container vbox.addChild(swfLoader); } ]]> </mx:Script> <mx:VBox id="vbox" width="100%" height="100%" verticalCenter="0" horizontalCenter="0" cacheAsBitmap="true" > </mx:VBox> </mx:WindowedApplication> 请告诉我们如何解决此问题. 解决方法
使用Loader.loadBytes()加载SWF.创建LoaderContext的实例. loadBytes方法将LoaderContext实例作为参数.将LoaderContext实例的allowCodeImport属性设置为true,它应该可以工作
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |