首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >actionscript flash -播放时加载帧

actionscript flash -播放时加载帧
EN

Stack Overflow用户
提问于 2011-02-12 17:23:47
回答 2查看 919关注 0票数 0

祝大家日安。我有一个关于闪电侠的问题。是否可以加载一个剪辑的前2-3帧,并在播放时加载其余的帧?

另外,如果第一个问题的答案是肯定的,那么考虑到第一部分中发生的事情,是否有可能改变加载顺序?

如果是的话。多么?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-12 17:36:52

答案#1:是的。

默认情况下,Flash影片是流式播放的,这意味着它们一加载第1帧就开始播放。

但是,你必须确保库中的任何符号都没有嵌入到帧1中-否则加载第一帧将需要更长的时间。此外,使用运行时共享库也会有类似的效果。

答案#2:如果你想改变加载时正在循环的同一个SWF的加载顺序,答案是否定的。当然,您可以更改正在加载到第一个影片中的其他SWF的加载顺序。

票数 0
EN

Stack Overflow用户

发布于 2011-02-14 01:46:41

简而言之,加载时,flash播放器将从第1帧开始,并将继续停留在那里,直到第1帧上的所有数据都加载完毕。只有这样,它才会进入下一帧。您可以通过选中“文件->发布器设置”下"Flash“选项卡中的”生成构建报告“复选框来获得导出到每个帧的数据字节数的详细报告。

要获得一个简单的加载显示,请在第1帧中添加一个名为"loader_txt“的TextField,并实际添加以下代码:

代码语言:javascript
复制
  stop();

  this.addEventListener(Event.ENTER_FRAME, loading);

  function loading(e:Event):void{

      var total:Number = this.stage.loaderInfo.bytesTotal;
      var loaded:Number = this.stage.loaderInfo.bytesLoaded;

      loader_txt.text = Math.floor((loaded/total)*100)+ "%";

    if (total == loaded){
      play();
      this.removeEventListener(Event.ENTER_FRAME, loading);
    }

  }

要确保导出的资源和actionscript代码超出第1帧,以便上述代码可以在flash电影开始加载时立即生效,请转到“文件->发布设置”,选择"Flash“选项卡,然后单击”设置...““脚本”右边的按钮。应该会出现一个对话框。在该对话框中,在"Export classes In frame:“下,输入2。

对于库中的资源,您可能需要执行类似的操作。右键单击库资源并选择属性,您将看到取消选中“在第1帧中导出”的选项。如果取消选中它(这意味着flash电影可以在加载此资源之前开始播放),则必须确保在时间轴中第1帧之后的某个位置引用了该元件,否则Flash将在编译中忽略它。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4977310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档