[AS3]编写元数据和提示点的回调方法
2012-02-06 12:15:53 来源:本站整理核心提示:当播放器收到特定元数据或到达特定提示点时,可以在应用程序中触发动作,[AS3]编写元数据和提示点的回调方法,当这些事件发生时,必须将特定回调方法用作事件处理函数,则可以使用上面的代码处理 asyncError 事件并忽略错误,如果 FLV 中有元数据和多个提示点,NetStream 类指定了在播放期间可发生的以下元数据
当播放器收到特定元数据或到达特定提示点时,可以在应用程序中触发动作。当这些事件发生时,必须将特定回调方法用作事件处理函数。NetStream 类指定了在播放期间可发生的以下元数据事件:onCuePoint(仅限 FLV 文件)、onImageData、onMetaData、onPlayStatus、onTextData 和 onXMPData。
必须为这些处理函数编写回调方法,否则,Flash Player 可能会引发错误。例如,以下代码播放 SWF 文件所在文件夹中名为 video.flv 的 FLV 文件:
- var nc:NetConnection = new NetConnection();
- nc.connect(null);
- var ns:NetStream = new NetStream(nc);
- ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
- ns.play("video.flv");
- function asyncErrorHandler(event:AsyncErrorEvent):void
- {
- trace(event.text);
- }
- var vid:Video = new Video();
- vid.attachNetStream(ns);
- addChild(vid);
上面的代码加载一个名为 video.flv 的本地视频文件并侦听要调度的 asyncError (AsyncErrorEvent.ASYNC_ERROR)。当本机异步代码中引发异常时调度此事件。在本例中,当视频文件中包含元数据或提示点信息,并且未定义相应的侦听器时,将调度此事件。如果您对视频文件的元数据或提示点信息不感兴趣,则可以使用上面的代码处理 asyncError 事件并忽略错误。如果 FLV 中有元数据和多个提示点,则 trace() 函数将显示以下错误消息:
- Error #2095: flash.net.NetStream was unable to invoke callback onMetaData.
- Error #2095: flash.net.NetStream was unable to invoke callback onCuePoint.
- Error #2095: flash.net.NetStream was unable to invoke callback onCuePoint.
- Error #2095: flash.net.NetStream was unable to invoke callback onCuePoint.
发生错误的原因是 NetStream 对象找不到 onMetaData 或 onCuePoint 回调方法。
更多精彩
赞助商链接