2011-03-04 90 views
1

我探索的Flash作爲實現動畫重應用程序的選項,我有一個概念上的問題。性能:動畫直多邊形對曲線形狀

我的問題是:在Adobe Flash中,是動畫彎曲形狀顯著超過動畫直多邊形處理器密集型?或者他們的表演約爲等於? (比方說,任何形狀是相當簡單的,每個形狀3和10之間的頂點/錨點,並且存在20周1000的形狀之間。動畫將包括拉伸,擠壓,旋轉,和形狀的平移。)

能夠使用這兩個沒有顯著放緩將是巨大的,但是沒關係,如果僅使用直多邊形要快得多。但是我在計劃一些事情之前需要知道哪一個通常是真的。

(我試過尋找互聯網上的人是否已經問過這個,但我能找到的最接近的是光柵圖形與矢量圖形,這是不是我說的是:我的兩個選擇使用矢量圖形。)

謝謝您的時間!

回答

1

你可以寫某種基準測試。 Lessay:

stage.frameRate = 600; 
var itmz:Array = new Array(); 
for(var i:int = 0; i < 1000; i++){ 
    var item:Shape = new Shape; 
    [...Draw...] 
    item.cacheAsBitmap = false; 
    itmz.push(item); 
    addChild(item); 
} 

var timer:Number= getTimer(); 

addEventListener(Event.ENTER_FRAME, onEnterFrame); 

function onEnterFrame(e:Event):void{ 
    trace(getTimer() - timer); 
    timer = getTimer(); 
    for(var i:int = 0, l:int = itmz.length; i < l; i++){ 
     itmz[i].x = Math.random() * 800; 
     itmz[i].y = Math.random() * 800; 
    } 
} 

或多或少這樣可以用來測試速度。然後比較數字,最好是如果你有足夠的形狀來注意到一個相當強的滯後(所以你有不到2幀每秒),然後比較onEnterFrames之間的時間 - 越小越好。重複不同的形狀,而不是結果。

編輯:在辯論層面上,我認爲這取決於你想達到的目標。例如,如果您試圖用幾條直線替換每條曲線(例如:將圓圈變成28邊多邊形),那麼我的猜測是曲線更快。但是,用方形內容廣場替換一個圓角的廣場應該會變得更快,儘管我相信這不會是一個非常明顯的變化。除非所有點都不斷變形,否則位圖緩存會消除它們之間的所有差異。