最近更新 / 特别专题 / 我要上传 / 设为首页
满足眼睛的需求

频道精选


预加载FLV文件

2007-06-05 来源:xuezhishi.com   内容报错                        

若要跟踪 FLV 文件的下载进度,请使用 NetStream.bytesLoadedNetStream.bytesTotal 属性。若要获取 FLV 文件的总字节数和当前下载的字节数,请使用 NetStream.bytesLoadedNetStream.bytesTotal 属性。

下面的示例使用 bytesLoadedbytesTotal 属性显示将 video1.flv 加载到名为 my_video 的视频对象实例中的进度。将动态创建一个名为 loaded_txt 的文本字段,以便显示有关加载进度的信息。

预加载 FLV 文件:

  1. 创建一个名为 preloadFLV.fla 的新 FLA 文件。
  2. 在"库"面板("窗口">"库")中,从"库"弹出菜单中选择"新建视频"。
  3. 在"视频属性"对话框中,命名视频元件并选择"视频"(由 ActionScript 控制)。
  4. 单击"确定"以创建一个视频对象。
  5. 将将视频对象从"库"面板拖到舞台上,以创建视频对象实例。
  6. 使视频对象在舞台上保持选中状态,在属性检查器("窗口">"属性">"属性")中的"实例名称"文本框中键入 my_video
  7. 使视频实例保持选中状态,然后在属性检查器的宽度文本框中键入 320,在高度文本框中键入 213
  8. 在时间轴中选择第 1 帧,然后打开"动作"面板("窗口" >"动作")。
  9. 在"动作"面板中键入以下代码:

代码:

var connection_nc:NetConnection = new NetConnection();connection_nc.connect(null);var stream_ns:NetStream = new NetStream(connection_nc);my_video.attachVideo(stream_ns);stream_ns.play("http://www.helpexamples.com/flash/video/lights_short.flv");this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 160, 22);var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns);function checkBytesLoaded(my_ns:NetStream) {    var pctLoaded:Number = Math.round(my_ns.bytesLoaded / my_ns.bytesTotal * 100);    loaded_txt.text = Math.round(my_ns.bytesLoaded / 1000) + " of " + Math.round(my_ns.bytesTotal / 1000) + " KB loaded (" + pctLoaded + "%)";    progressBar_mc.bar_mc._xscale = pctLoaded;    if (pctLoaded >= 100) {        clearInterval(loaded_interval);    }}


 

  

      10.选择"控制">"测试影片",对代码进行测试。

注意

 

如果进度条立刻走完,则表明视频被缓存到了硬盘上(可能是早已测试过此示例,也可能在其它过程中早已加载了它)。如果发生这种情况,请将 FLV 文件上载到服务器,然后再加载。

预加载 FLV 文件的另一种途径是使用 NetStream.setBufferTime() 方法。此方法采用单个参数,该参数指示回放开始前 FLV 流进行缓冲的秒数。有关更多信息,请参见《ActionScript 2.0 语言参考》中的 setBufferTime(NetStream.setBufferTime 方法)、getBytesLoaded(MovieClip.getBytesLoaded 方法)getBytesTotal(MovieClip.getBytesTotal 方法)bytesLoaded(NetStream.bytesLoaded 属性)bytesTotal(NetStream.bytesTotal 属性)setInterval 函数

评论 点击查看
 

精彩图片