如何在flex UI组件中显示远程swf?

时间:2013-02-23 06:12:04

标签: flex air flex4.5

我正在尝试在我的flex应用程序中显示远程swf,我能够加载swf,但它在我的flex应用程序中没有显示(可见)。

这是代码

private function onLoaderComplete(event:Event):void{
            can.addChild(l);
        }


            import flash.system.SecurityDomain;
            import flash.system.ApplicationDomain;
                             var l:Loader = new Loader();

            private function initApp():void {  
            var context:LoaderContext = new LoaderContext();

            l.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete);
            if(Security.sandboxType == Security.REMOTE){
                var context:LoaderContext = new LoaderContext();
                context.securityDomain = SecurityDomain.currentDomain;
                l.load(new URLRequest('www.somedomain.com/load.swf?id1'), context);
            }else{
                l.load(new URLRequest('www.somedomain.com/load.swf?id=1'));
            }

private function onLoaderComplete(event:Event):void{
            can.addChild(l);
        }


<mx:Canvas width="100%" height="50%" backgroundColor="red">
    <mx:UIComponent id="can" width="100%" height="100%" >

    </mx:UIComponent>
</mx:Canvas>

任何想法

全部谢谢

1 个答案:

答案 0 :(得分:0)

您的代码段未定义“L”是什么

您使用当前代码时遇到的最可能的问题是,您将'l'添加到UIComponent上,该UIComponent没有用于调整和定位其子项的内置代码,因此您的'l'将没有高度和宽度,有效地使它看不见。

我会使用SWFLoader加载另一个SWF文件并将其显示为应用程序的一部分。