2010-09-08 37 views
0

那么我有自定义的FLV播放器,它读取XmL并在Flv视频上绘制圆圈。位置和时间在XML中指定。我用as3 getTimer()函数进行了计算。它工作正常,无论你暂停多久,然后再玩。圈子显示在正确的时间。在自定义的FLV播放器上画圆圈

现在我有两个问题

1-如何getTimer可以重置?当用户被允许播放另一个swf时,它是必需的。 2-除getTimer计算之外是否还有其他方法?我没有使用Timer类,因为它取决于Frame-Script执行时间,并且可能会产生错误的结果,所以它不如getTimer()函数准确。 3-因为我使用的自定义滑块,所以我必须做每次当用户单击或拖动滑块w.r.t getTimer()函数,然后减去秒和所有的计算。但是当用户播放另一个swf时,它又非常困难,因为我的计算基于getTimer()函数。

如果有任何开源项目可用,请转发我的链接,但我希望它在Flash Player和Air Player上运行?

回答

0

我会尽力为你指明正确的方向,但首先回答您的问题:

  1. 没有
  2. 没有(除了使用定时器)
  3. 它不应该有任何更多困难

为了扩大数字3,因为这是你的解决方案所在,它确实不应该再困难。您需要跟踪当前FLV启动的时间。只要你有这个数学真的没有什么不同。最简单的方法是引入您自己的reset函数,并将getTimer包装在自定义函数中以添加所需的其余功能。事情是这样的:

var startTime:int; 

function resetTimer():void { 
    startTime = getTimer(); 
} 

function getTime():int { 
    return getTimer() - startTime; 
} 

在上面的例子中,你总是从getTime而不是getTimer访问当前的时间,超越一切是一样的。只需确保在需要时致电resetTimer

我希望有帮助!