祝大家日安。我有一个关于闪电侠的问题。是否可以加载一个剪辑的前2-3帧,并在播放时加载其余的帧?
另外,如果第一个问题的答案是肯定的,那么考虑到第一部分中发生的事情,是否有可能改变加载顺序?
如果是的话。多么?
谢谢你的帮助。
发布于 2011-02-12 17:36:52
答案#1:是的。
默认情况下,Flash影片是流式播放的,这意味着它们一加载第1帧就开始播放。
但是,你必须确保库中的任何符号都没有嵌入到帧1中-否则加载第一帧将需要更长的时间。此外,使用运行时共享库也会有类似的效果。
答案#2:如果你想改变加载时正在循环的同一个SWF的加载顺序,答案是否定的。当然,您可以更改正在加载到第一个影片中的其他SWF的加载顺序。
发布于 2011-02-14 01:46:41
简而言之,加载时,flash播放器将从第1帧开始,并将继续停留在那里,直到第1帧上的所有数据都加载完毕。只有这样,它才会进入下一帧。您可以通过选中“文件->发布器设置”下"Flash“选项卡中的”生成构建报告“复选框来获得导出到每个帧的数据字节数的详细报告。
要获得一个简单的加载显示,请在第1帧中添加一个名为"loader_txt“的TextField,并实际添加以下代码:
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将在编译中忽略它。
祝好运!
https://stackoverflow.com/questions/4977310
复制相似问题