2010-05-10 60 views
0

我有一个SWF,我添加了一个Preloader场景。当我在Flash CS4中按Ctrl + Enter时,预加载器工作正常,并选择View> Simulate Download。AS3 Preloader不能在浏览器中使用,但在Flash Professional中使用

预加载器显示,当电影满了时,电影按预期继续。

但是,当我将SWF嵌入到某些HTML中,并在任何浏览器中从本地主机加载时,电影不会继续,直到我右键单击并选择“播放”。

当我使用Charles Web Debugging Proxy工具并扼制连接时,再次预加载正常工作,并且电影在完成时继续?

任何想法可能会出错?下面是预加载来源:

import flash.events.ProgressEvent; 

loaderInfo.addEventListener(ProgressEvent.PROGRESS, update); 

function update(e:ProgressEvent):void 
{ 
    var percent:Number = Math.floor((e.bytesLoaded * 100)/e.bytesTotal); 

    if(preloaderClip is MovieClip) 
    { 
     preloaderClip.gotoAndStop(percent); 
    } 

    if(percent == 100) 
    { 
     play(); 
    } 
} 

// Extra test for IE 
var percent:Number = 
    Math.floor((this.loaderInfo.bytesLoaded * 100)/this.loaderInfo.bytesTotal); 

if(percent == 100) 
{ 
    nextFrame(); 
} 
stop(); 

回答

0

耶!修复!我简单地添加了以下代码的ADDED_TO_STAGE事件监听器:

private function onAddedToStage(event:Event):void 
{ 
    var percent:Number = 
     Math.floor((this.loaderInfo.bytesLoaded * 100)/this.loaderInfo.bytesTotal); 

    MonsterDebugger.trace(this, "ADDED_TO_STAGE " + percent + " loaded..."); 

    if(percent == 100) 
    { 
     gotoAndPlay("in", "Main"); 
    } 
} 
1

你可能在你的代码的某种竞争条件,因此,当负荷接近瞬间它未能赶上COMPLETE事件或类似的规定。

要比没有任何代码看起来更加具体很难。

+0

Kewl,我添加了preloader的源代码,感谢您的及时回复! – 2010-05-10 15:07:03

相关问题