【发布时间】:2011-06-20 13:05:08
【问题描述】:
在我开始播放电影之前,我添加了几个提示点,然后注册回调,并在每次被点击时进行跟踪,如下所示:
private function onCuePoint(evt:CuePointEvent):void {
var cuePointObject:Object = {name:evt.cuePointName, time:evt.cuePointTime, type:evt.cuePointType};
trace("onCuePoint: " + evt.cuePointName + "=" + cueDict[evt.cuePointName] + " @t=" + cuePointObject.time + " playtime=" + playheadTime);
}
您会认为 cuePointObject.time 大致等于电影的 playheadTime。这是输出:
onCuePoint: cue3.4=cue3.4 @t=5.6 playtime=5.611
onCuePoint: cue1=cue1 @t=1 playtime=5.611
onCuePoint: cue2=cue2 @t=3 playtime=5.611
onCuePoint: cue2=cue2 @t=5 playtime=5.611
onCuePoint: cue3.1=cue3.1 @t=5 playtime=5.611
onCuePoint: cue3.1=cue3.1 @t=5.2 playtime=5.611
onCuePoint: cue3.2=cue3.2 @t=5.2 playtime=5.611
onCuePoint: cue3.2=cue3.2 @t=5.4 playtime=5.611
onCuePoint: cue3.3=cue3.3 @t=5.4 playtime=5.611
onCuePoint: cue3.3=cue3.3 @t=5.6000000000000005 playtime=5.611
onCuePoint: cue3.4=cue3.4 @t=5.8 playtime=5.888
onCuePoint: cue3.5=cue3.5 @t=5.8 playtime=5.888
onCuePoint: cue4=cue4 @t=10 playtime=9.92
onCuePoint: cue1=cue1 @t=11 playtime=11.221
它看起来好像等到“cue3.4”被触发,然后由于某种原因其余的跟随。它们作为数组添加到视频中,大致按照它们应该出现的顺序排序,所以 cue3.4 不是第一个。
【问题讨论】:
-
actionscript 提示点并不总是可靠的。如果您可以使用嵌入式提示点,那就太好了。如果您使用的是动作脚本提示点并且它们不适合您,也许您可以使用 Timer 类(多个实例或单个实例,您将使用时间值数组中的提示之间的相对时间进行更新)
-
“可靠”是什么意思?我知道它们可以在 +/- 0.1 秒左右的时间内触发,但对于这个用例来说这对我来说很好。嵌入式提示点不是一个选项,因为我正在做一个注释 UI,在视频已经编码后必须使用它。
标签: actionscript-3 flex3 cue-points