As3 Preloader(空白至100%)

时间:2011-06-24 01:42:19

标签: actionscript-3 flash preloader

我有一个包含两个帧的FLA文件。在第一帧我只有一个文本字段和一些代码来进行预加载。完成预加载后,它会gotoAndStop(2)

在第1帧我有:

stop();
stage.scaleMode = StageScaleMode.SHOW_ALL;
//Import the required assets
import flash.display.*;
//Stop the playhead while loading occurs
this.stop();

//Create a listener to call the loading function as the movie loads;
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, PL_LOADING);
this.loaderInfo.addEventListener(Event.COMPLETE, PL_FINISH);

function PL_LOADING(event:ProgressEvent):void
{
    var pcent:Number = event.bytesLoaded / event.bytesTotal * 100;
    //Display the % loaded in textfield
    txt.text = int(pcent) + "%";
    //If the movie is fully loaded, kick to the next frame on the main timeline
}
function PL_FINISH(event:Event):void
{
    removeChild(txt);
    gotoAndStop(2);
}

在第2帧我什么都没有,除了:

var game:Game = new Game();
addChild(game);

在我的发布商设置中,我已导出到第2帧。

我的问题是预加载器直到100%才会显示。有谁知道为什么?

P.S。为了测试我在第2帧的舞台上放了一个大的图像文件,结果是一样的。

3 个答案:

答案 0 :(得分:1)

如果您没有在为ActionScript导出的每个库符号中取消选择“导出第1帧”,通常会发生这种情况。

enter image description here

您需要确保创建对这些对象的引用(以便ActionScript可以访问它们),方法是将它们放在第2帧(不在视线范围内)的舞台上。

发生的事情是在加载预加载器之前加载了所有符号。

如果这不是问题,请provide some code,以便我更好地评估您的问题。

答案 1 :(得分:0)

你试过在第一帧上放一些静态的东西吗?仅仅因为有一个预加载器,这并不意味着你的swf会显示...

我知道我有一个swf曾经只需要花一点时间来实际让Flex预加载器因网络延迟而出现。可能是你的swf没有显示,直到它已经加载了90%。

答案 2 :(得分:0)

我正在处理类似的问题,我发现了一些东西:我的防病毒软件包含一种“浏览器保护”功能,它可以在允许浏览器实际显示所有文件之前预先检查所有文件。如果系统上尚未安装此防病毒功能,则预加载器可以正常运行。我检查了一些其他带有Flash内容的网站,在这种情况下他们也表现得“错误”。现在,有些人似乎找到了阻止防病毒软件乱搞的方法,但我不知道他们是怎么做的......还没有...