Leistungsoptimierung für die ADOBE FLASH-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
LEISTUNGSOPTIMIERUNG FÜR DIE <strong>FLASH</strong>-<strong>PLATTFORM</strong><br />
Renderleistung<br />
import org.bytearray.bitmap.Apple;<br />
stage.addEventListener(KeyboardEvent.KEY_DOWN, cacheApples);<br />
const MAX_NUM:int = 200;<br />
var apple:Apple;<br />
var holder:Sprite = new Sprite();<br />
addChild(holder);<br />
var holderVector:Vector. = new Vector.(MAX_NUM, true);<br />
for (var i:int = 0; i< MAX_NUM; i++)<br />
{<br />
apple = new Apple();<br />
}<br />
holder.addChild(apple);<br />
holderVector[i] = apple;<br />
function cacheApples(e:KeyboardEvent):void<br />
{<br />
if (e.keyCode == 67)<br />
{<br />
var lng:int = holderVector.length<br />
}<br />
}<br />
for (var i:int = 0; i < lng; i++)<br />
{<br />
apple = holderVector[i];<br />
}<br />
apple.cacheAsBitmap = Boolean(!apple.cacheAsBitmap);<br />
Beachten Sie, dass <strong>die</strong> Bitmap-Zwischenspeicherung das Rendern verbessert, wenn der zwischengespeicherte Inhalt<br />
nicht in jedem Bild gedreht, skaliert oder geändert wird. Bei anderen Transformationen als der Verschiebung entlang<br />
der x- und y-Achsen wird das Rendern jedoch nicht verbessert. In <strong>die</strong>sen Fällen aktualisiert Flash Player <strong>die</strong><br />
zwischengespeicherte Kopie der Bitmap <strong>für</strong> jede Transformation des Anzeigeobjekts. Die Aktualisierung der<br />
zwischengespeicherten Kopie kann zu einer hohen CPU-Auslastung, einer schlechteren Leistung und zu einer hohen<br />
Akkunutzung führen. Wiederum gilt <strong>die</strong>se Einschränkung nicht <strong>für</strong> <strong>die</strong> cacheAsBitmapMatrix-Eigenschaft, <strong>die</strong> in<br />
AIR und im Packager for iPhone zur Verfügung steht.<br />
Der folgende Code ändert den Alphawert in der Verschiebungsmethode, wodurch <strong>die</strong> Deckkraft des Apfels in jedem<br />
Bild geändert wird:<br />
private function handleMovement(e:Event):void<br />
{<br />
alpha = Math.random();<br />
x -= (x - destinationX)*.5;<br />
y -= (y - destinationY)*.5;<br />
}<br />
if (Math.abs(x - destinationX) < 1 && Math.abs(y - destinationY) < 1)<br />
initPos();<br />
Letzte Aktualisierung 9.5.2012<br />
61