基于 AS3 预加载器进度百分比的 gotoAndPlay 帧

发布于 2024-08-15 05:33:31 字数 807 浏览 5 评论 0原文

我遵循了这个优秀的as3预加载器教程,下面是我到目前为止的代码。

var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("content.swf"));

function loop(e:ProgressEvent):void
{
var perc:Number = e.bytesLoaded / e.bytesTotal;
percent.text = Math.ceil(perc*100).toString();
trace("loading...");
}

function done(e:Event):void
{
removeChildAt(0);
percent = null;
addChild(l);
trace("done!");
}

这完美地加载了主要内容。显示加载进度的百分比。

现在我想更进一步。我的目标是在时间轴上的 3 个不同帧中显示 3 张图像,其中一张在完成 25% 时可见,第二张在完成 50% 时可见,最后一张图像在完成 75% 时可见。

我假设我需要添加一些 if 语句,但我无法弄清楚监听 flash 百分比以了解要移动到哪个帧的语法是什么。

感谢您的阅读,非常感谢任何帮助。

i followed this excellent as3 preloader tutorial, and below is the code i have so far.

var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("content.swf"));

function loop(e:ProgressEvent):void
{
var perc:Number = e.bytesLoaded / e.bytesTotal;
percent.text = Math.ceil(perc*100).toString();
trace("loading...");
}

function done(e:Event):void
{
removeChildAt(0);
percent = null;
addChild(l);
trace("done!");
}

this loads the main content perfectly. displaying the percent of the loading progress.

now i'd like to take it a step farther. my goal is to have 3 images in 3 different frames on a timeline and have one become visible on 25% done, the second on 50% done, and the final image on 75% done.

i'm assuming i need to add some if statements but i'm having trouble figuring out what the syntax would be to listen for the percentage for flash to know what frame to move to.

thanks for reading and any help is greatly appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只是一片海 2024-08-22 05:33:31

将一个名为 movieClipWithImages 的影片剪辑添加到舞台上,其中包含 3 个图像(每帧一个),然后使用以下代码。

function loop(e:ProgressEvent):void
{
  var perc:Number = e.bytesLoaded / e.bytesTotal;
  percent.text = Math.ceil(perc*100).toString();
  trace("loading...");
  movieClipWithImages.gotoAndStop(Math.floor(perc*3/100)+1);
}

Add a movie clip called movieClipWithImages with the 3 images, one on each frame, to the stage, and then use the following code.

function loop(e:ProgressEvent):void
{
  var perc:Number = e.bytesLoaded / e.bytesTotal;
  percent.text = Math.ceil(perc*100).toString();
  trace("loading...");
  movieClipWithImages.gotoAndStop(Math.floor(perc*3/100)+1);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文