2011-03-04 66 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边多边形),那么我的猜测是曲线更快。但是,用方形内容广场替换一个圆角的广场应该会变得更快,尽管我相信这不会是一个非常明显的变化。除非所有点都不断变形,否则位图缓存会消除它们之间的所有差异。