2011-05-17 101 views
0

我正在使用Flash CS4,並且在測試我的應用程序時,我的幀速率隨編程時間而變化。當我嘗試在瀏覽器中運行應用程序時(嘗試Firefox 4,Opera 10.5和IE 8),幀速率不會改變。Flash瀏覽器中的Flash幀速率與Flash Player中的Flash幀速率不同

爲什麼幀速率沒有改變?我如何解決它?

+0

你是如何設置的,你如何測量幀速率? – dain 2011-05-17 11:59:20

+0

我正在使用'stage.frameRate = speed;'設置幀速率。我不是通過將值輸出到屏幕或任何東西來測量它。顯而易見的是,我的物體沒有像應該那樣快速移動。 – 2011-05-17 12:06:39

+0

許多瀏覽器對幀速率都有限制。我知道Chrome將其限制爲60fps,與Firefox相同。 – Cay 2011-05-17 12:38:03

回答

1

無論用什麼數字來設置幀速率,最新的Flash Player的上限值都是60fps。這可能是一個問題......但是如果屏幕上的物體變慢,那麼通過改變幀率就沒有什麼可以獲得的。這意味着你的swf沒有得到很好的優化,玩家正在努力渲染資產。

1

設置您的HTML,以便Flash對象的wmode是「不透明」(或者如果您真的需要透明的話)。如果你沒有指定它,它會將它解釋爲一些其他的默認參數,這會讓你在幀率性能上下降。

樣品:

<object type="application/x-shockwave-flash" data= 
"YourFlashMovie.swf" width="640" height="480" 
id="flash_id_1" style="visibility: visible;"> 
    <param name="allowScriptAccess" value="always" /> 
    <param name="allowScale" value="never" /> 
    <param name="allowFullScreen" value="true" /> 
    <param name="wmode" value="opaque" /> <!-- THIS IS WHAT YOU MUST SET --> 
    <param name="quality" value="high" /> 
    <param name="scale" value="" /> 
    <param name="scaleMode" value="" /> 
    <param name="menu" value="false" /> 
</object> 

希望有所幫助。

+0

將wmode設置爲透明會導致性能下降,從而降低幀率。 – 2011-05-17 14:30:30

+0

以及導致其他一些煩人的錯誤,如不能夠在某些瀏覽器的輸入字段中鍵入@符號...設置您的wmode直接(或在某些情況下「gpu」)是一個更好的選擇 – ThomasM 2011-05-17 14:38:27

+0

嗯,會給'直接'一試,一旦我確認這些更改會使瀏覽器的幀率一致,就會更新。 – bigp 2011-05-17 14:41:17