2010-06-27 40 views
0

我正在編程式地沿着基於鼠標事件監聽器的時間線來回拖動播放頭。鼠標拖動的速度越快,播放頭通過幀的速度越快(它與線性比例成正比)。AS3 getTimer MOUSE_MOVE事件之間的結果

我也發射起動器= getTimer();在初始mouse_move事件觸發器(並且僅在初始事件)上觸發事件,然後在計算新播放頭位置的代碼末尾觸發一個ender = getTimer(),但只有在計算導致播放頭被告知移動至少一幀(在播放頭移動一幀之前,鼠標可移動幾個像素)。實質上,它給了我一個每秒幀率。

如果我看看這兩個定時器的三角洲,我很少會得到任何東西,但0。偶爾我會得到1但不是很經常。在最初的mouse_move和移動播放頭的決定之間需要制定好幾十行代碼,而這必須在播放頭完全移動之前進行多次鼠標位置更改,第二個getTimer調用被觸發。 mouseEvent是否觸發每個ms或它是否以文檔的幀速率(輸入幀速率)觸發。如果是這樣,我應該看到的最小三角洲是31毫秒。

它作爲獨立swf播放器(10.1)中的應用程序運行,從不在瀏覽器中運行。 我的結果是否表明了這一點?編譯器真的可以快速運行嗎?一個人如何做非常小的時序測試,看起來超過毫秒時鐘粒度?

我錯過了一些明顯的東西嗎?

回答

0

這真的很難理解,你的實際問題是什麼。我建議,你把問題減少到最低限度,向我們展示一些代碼。我認爲你在理解AS3事件模型時遇到了問題。調用getTimer當然並不意味着發射一個事件。另外,MouseEvents是幀速率獨立的。