gpt4 book ai didi

actionscript-3 - 在AS3中加载SWF,但Flash会不断重复构造函数,该怎么办?

转载 作者:行者123 更新时间:2023-12-03 17:42:03 25 4
gpt4 key购买 nike

我正在使用Loader类导入多个外部文件,其中一个是swf文件。这样做时(我之前做过成功,所以没想到有任何问题),我遇到了各种各样的错误,最后Flash崩溃了。

我在构造函数中放了一条跟踪,它并没有跟踪一次,而是一直跟踪,这表明构造函数陷入了循环。我猜想太多相同SWF文件的加载是导致Flash最终崩溃的原因。

这是我的代码(swf im加载现在是一个简单的测试文件,其中包含图像而没有代码):

    private var slides:Loader = new Loader();

public function DocumentClass()
{
trace(1)
slides.load(new URLRequest("Resources/Slides.swf"));
slides.contentLoaderInfo.addEventListener(Event.COMPLETE, SlidesComplete);
}


public function SlidesComplete(evt:Event):void
{
slides.contentLoaderInfo.removeEventListener(Event.COMPLETE, SlidesComplete);
addChild(slides);
}

这将跟踪“11111111111 ...”,所有内容最终都消失了。

帮帮我!

最佳答案

尝试将stop()操作放在加载的SWF文件的顶部(在ActionScript中或在时间轴上)。同时,swf可能正在加载中并且正在运行播放并循环运行(因此,您的代码会一遍又一遍地运行)。

在SWF完全加载之前,我会进行进度监视,然后跳到您的显示框架:

  • 创建一个要加载的部分(如果要使用预加载器,则可以选择)
  • 为加载的内容创建另一个部分(关键帧集)。我使用关键帧是因为它很容易,但是您也可以等待实例化类,直到加载完成。

  • 以下是我偶尔创建的摘录:
    // stop the playhead from moving ahead
    stop(); // you can also use gotoAndStop("loading"); if you want

    function loaderProgressHandler(event:Event):void {
    // switch the framehead to main which will show your content
    if(event.bytesLoaded >= event.bytesTotal) {
    event.target.removeEventListener(Event.PROGRESS, this.loaderProgressHandler);
    this.gotoAndStop("main");
    }
    }

    this.loaderInfo.addEventListener(Event.PROGRESS, this.loaderProgressHandler);

    希望 有帮助!

    关于actionscript-3 - 在AS3中加载SWF,但Flash会不断重复构造函数,该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7154318/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com