首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flex:当我加载本地外部SWF时,应用程序无限地加载/卸载

Flex:当我加载本地外部SWF时,应用程序无限地加载/卸载
EN

Stack Overflow用户
提问于 2011-05-06 15:52:58
回答 2查看 594关注 0票数 1

我有一个Flex应用程序,它只加载一个外部SWF,但该应用程序会无限地加载和卸载我的swf。

嵌入的as3代码为:

代码语言:javascript
复制
<![CDATA[

        import mx.events.FlexEvent;

        private var m_Application:Application;

        private function initGenderMenuApp(evt:FlexEvent):void{ 

            m_Application = evt.target as Application;
            m_Application.removeEventListener( FlexEvent.APPLICATION_COMPLETE, initMenuApp );
            var loader:Loader = new Loader();

            trace("initApp");
            loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onFailedLoad);
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoadedApp );
            loader.load( new URLRequest( "application.swf" ));

        }
        private function onFailedLoad( evt:Event ):void{

            trace("ERROR", evt.target);
        }

        private function onLoadedApp( evt:Event ):void{


            trace("Loading Application..");
            var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
            loaderInfo.removeEventListener( Event.COMPLETE, onLoadedApp);
            trace(loaderInfo.loader.content);
            m_Application.addElement( new SpriteUIComponent( evt.target.loader.content as MovieClip));          
        }

    ]]>

SpriteUIComponent用于将SWF作为雪碧图添加到舞台上。

问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-06 16:02:12

您是否正在尝试加载与主应用本身相同的application.swf??(递归?)

票数 0
EN

Stack Overflow用户

发布于 2011-05-06 16:04:52

您可以添加2个额外的事件,以更好地监控加载发生的情况。这两个是HTTPStatusEvent.HTTP_STATUSProgressEvent.PROGRESS

它们的用法如下:

代码语言:javascript
复制
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loader.contentLoaderInfo.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);

private function progressHandler(event:ProgressEvent):void {
    trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}

private function httpStatusHandler(event:HTTPStatusEvent):void {
    trace("httpStatusHandler: " + event);
}

现在,您可以更好地控制所发生的事情。您将看到在加载完成之前加载了多少字节,并且您将看到是否存在任何http错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5908373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档