【问题标题】:AS2 check if external file is loadedAS2 检查是否加载了外部文件
【发布时间】:2017-10-27 14:45:59
【问题描述】:

首先,是的,我知道 AS2 已经过时,但我是自学成才的,AS2 更容易学习。自从我开始这个项目以来,我已经开始转向 AS3,但我真的不想尝试将这个项目重新编码为 AS3。

所以,问题。 我正在使用一个 shell swf,它加载到另一个托管在不同站点上的 swf 中。我希望能够测试外部 swf 是否成功加载,如果没有,则尝试从备份主机加载它。有没有办法做到这一点?

这是 shell 的代码(工作得很好,只是想给它添加一个 if/else 测试):

    stop();

    this.onEnterFrame=function(){
        var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
        var image:MovieClip = mc.createEmptyMovieClip("image", mc.getNextHighestDepth());
        image.loadMovie("[redacted]");
        image._lockroot = true;
        delete this.onEnterFrame;
    }

我尝试在 image.loadMovie() 之后运行 image.getBytesTotal(),但它总是返回 0 值。

【问题讨论】:

    标签: flash actionscript-2


    【解决方案1】:

    我找到了解决方案。切换到使用 MovieClipLoader.loadClip() 而不是 loadMovie() 并调用了 onLoadError 监听器。

    如果其他人试图做类似的事情,这里的代码可以工作,它测试第一个主机,加载一个备份,然后也测试那个主机,如果两者都失败,那么它通过 shell 剪辑前进到一个包含错误消息的帧给观众。

        var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
        var mcLoader:MovieClipLoader = new MovieClipLoader();
        mcLoader.addListener(this);
        mcLoader.loadClip("URL", container);
        container._lockroot = true;
    
    
        var mclListener:Object = new Object(); 
        mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { 
            if(errorCode == 'URLNotFound'){
                mcLoader.loadClip("URL", container);
                trace("host 1 failed");
                container._lockroot = true;
                mclListener.onLoadError = function(target_mc:MovieClip, errorCode:String) { 
                    if(errorCode == 'URLNotFound'){
                        trace("host 2 failed");
                        _root.gotoAndStop(2);
                    }
                }
            }
        }; 
        mcLoader.addListener(mclListener);
    
        stop();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      相关资源
      最近更新 更多