CPU性能proeblems与Flash动画

嗯,我有一个时间试图运行我目前的应用程序时,让我的CPU下降在45%地狱。 我已经试过各种优化技巧和收效甚微的技巧和我在一个点上,现在,我需要一个完全不同的方法。

问题和当前的方法

在我的应用程序的主视图我有一个enterframe处理程序。 我有我的帧速率下低至10 FPS。 该处理器通知16个单独的影片剪辑使用绘制李布赖姆洛的楔形类不同的角度的挖起杆。

所以,16次,每次enterframe我有16个影片剪辑图文清晰,开始填充,绘制楔形,endfill全部被统筹的我的单enterframe处理程序。

这样做,这是撞我的CPU达40-50%之间:○

可能的替代?

我只是有一个影片剪辑为360帧长,揭示使用面膜圆的细分市场之一的想法,但我不是一个漫画家,而且不知道如何作出这样的面具。

所以,我想我的方法只是不会削减它。 任何人都可以提出的努力实现我的目标更好的方法?

我不知道怎样绘制每帧16楔子=如此高的CPU,所以我必须做一些根本性的错误。

有任何想法吗?

主要事件函数

private function updatePadProgress(e:Event):void { viewStackContainer.remixscreen.padUIManager.updatePadArcs2(this.model.audioEngine._channels) }

通过传递价值各界循环

public function updatePadArcs2(channels:Vector.<Channel>):void { var pc:PadContainer; var input:Input var c:int=0; var p:int=0; var pct:Number; var cc:Channel var position:int=0 var len:int=0 for (var i:int=0; i < pads.length; ++i) { pc=pads[i]; c=pc.channelassign; p=pc.padassign; input=channels[c].inputs[p]; if (input.currentState == Input.ACTIVE) { position=input.inputAudio.samples.position len=input.inputAudio.samples.length pct= position/len pc.drawProgress(pct) } } }

绘图功能

public function drawProgress(pct:Number):void { pad.drawOn.graphics.clear() pad.drawOn.graphics.beginFill(0x000000) Wedge.draw(pad.drawOn,0,0,10,360,0) pad.drawOn.graphics.endFill() }

--------------解决方案-------------

这为我工作的解决方案是在舞台上犯规需要更新每一帧被缓存为位图设置的任何资产。

它放弃我的CPU下降到20%

我想这可以由以下事实造成的,整个屏幕需要重新绘制了很多。 是否有更好的表现,如果你减少的大小或省略填充?

编辑:绘制楔形的代码看起来不错。 画线的1000应该不是真的造成大的性能损失。 灌装大区域可能不过。 如果你打相同的像素16倍,有机会是实际计提16倍(优化任意形状的图纸不那么明显)。

格尔茨
back2dos

分类: 时间:2015-03-15 人气:3
本文关键词: 性能,闪存,CPU,动画
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.386 (s). 10 q(s)