【问题标题】:main.swf (built on as3) reload child.swf (built on as2)main.swf(基于 as3)重新加载 child.swf(基于 as2)
【发布时间】:2012-05-04 17:43:24
【问题描述】:

我在重新加载 child.swf 时遇到问题。在第一次加载(loadPattern())时它工作正常,但在第二次卸载和加载时它工作不正确(不加载照片内容)没有任何错误。

Child.swf 建立在 as2 之上。

main.swf 建立在 as3 之上。

var childSwf:Object;
var loader:Loader = new Loader();
var childLoaded:Boolean = false;

function loadPatternHandler(event:Event):void 
{ 
   childSwf = event.target.content; 
   childSwf.x = 0;
   childSwf.y = -35;

} 

function loadPattern():void
{
    stopPattern();

    var myswf:String = "child.swf";

    var Xpos:Number = 0;
    var Ypos:Number = 0;

    var req:URLRequest = new URLRequest(myswf);

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadPatternHandler); 

    //loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

    loader.load(req);
    loader.x=Xpos;
    loader.y=Ypos;
    addChild(loader);
    childLoaded=true;

}

function stopPattern():void
{
    if(childLoaded)
    {
        loader.unloadAndStop();
        //loader.unload();
        removeChild(loader);
        loader=null;
        loader = new Loader();
        childLoaded = false;
    }
}

loadPattern();

在 stopPattern() 上没有完全卸载吗?

有什么建议吗?

谢谢。

【问题讨论】:

  • 一旦加载,您应该将所有逻辑添加到处理程序中 - loadPatternHandler 函数。您在 loadPattern 中立即调用 stopPattern 将再次删除它。
  • stopPattern 在加载下一个 child2.swf 之前删除上一个 child1.swf,或者为了重新加载,我只调用 loadPattern()。也许重新加载后,child.swf 更改工作目录并且无法加载 config.xml 文件。我不知道如何追踪。
  • 我已经有一段时间没有使用loader了,所以这可能有点离谱。你需要addChild(loader)吗?我认为该对象已加载到处理程序中(event.target.content 是对 loader.content 之类的引用),因此这是不必要的。此外,您永远不会删除 childSwf 中保存的引用,因此至少会留下一个引用。 childSwf = null 可能会有所帮助。此外,我认为您实际上并未将内容放入 display list 。 . .也许试试addChild(childSwf)removeChild(childSwf)
  • 我在 stopPattern() 中尝试了 childSwf = null,没有任何变化。 addChild(childSwf) for child1.swf(built on as3) 工作正常,但对于 child.swf(built on as2) 它给出错误:错误 #2180:将 AVM1 内容(AS1 或 AS2)移动到不同部分是非法的加载到 AVM2 (AS3) 内容中时的 displayList。

标签: actionscript-3 flash adobe actionscript-2 flash-cs5


【解决方案1】:

您是否研究过通用 AS2 加载解决方案?我使用 SWFBridge 取得了很好的效果:

http://gskinner.com/blog/archives/2007/07/swfbridge_easie.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 2012-05-13
    • 2012-10-18
    • 1970-01-01
    • 2019-03-30
    • 2012-05-11
    • 1970-01-01
    相关资源
    最近更新 更多