30.07.2012 Aufrufe

Leistungsoptimierung für die ADOBE FLASH-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!