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 />

var lng:int = holderVector.length<br />

function onFrame(e:Event):void<br />

{<br />

for (var i:int = 0; i < lng; i++)<br />

{<br />

bitmapApple = holderVector[i];<br />

bitmapApple.alpha = Math.random();<br />

}<br />

}<br />

bitmapApple.x -= (bitmapApple.x - bitmapApple.destinationX) *.5;<br />

bitmapApple.y -= (bitmapApple.y - bitmapApple.destinationY) *.5;<br />

if (Math.abs(bitmapApple.x - bitmapApple.destinationX ) < 1 &&<br />

Math.abs(bitmapApple.y - bitmapApple.destinationY ) < 1)<br />

{<br />

bitmapApple.destinationX = Math.random()*stage.stageWidth;<br />

bitmapApple.destinationY = Math.random()*stage.stageHeight;<br />

}<br />

Daraus ergibt sich ein einzelnes Event.ENTER_FRAME-Ereignis zur Verarbeitung der Bewegung anstelle von<br />

200 Prozeduren zur Bewegung der einzelnen Äpfel. Die ganze Animation kann problemlos angehalten werden, was<br />

besonders in einem Spiel nützlich sein kann.<br />

In einem einfachen Spiel kann beispielsweise <strong>die</strong> folgende Prozedur zum Einsatz kommen:<br />

stage.addEventListener(Event.ENTER_FRAME, updateGame);<br />

function updateGame (e:Event):void<br />

{<br />

gameEngine.update();<br />

}<br />

Im nächsten Schritt muss <strong>die</strong> Interaktion der Äpfel mit der Maus oder der Tastatur implementiert werden. Dazu sind<br />

Änderungen an der BitmapApple-Klasse erforderlich.<br />

package org.bytearray.bitmap<br />

{<br />

import flash.display.Bitmap;<br />

import flash.display.BitmapData;<br />

import flash.display.Sprite;<br />

}<br />

public class BitmapApple extends Sprite<br />

{<br />

public var destinationX:Number;<br />

public var destinationY:Number;<br />

private var container:Sprite;<br />

private var containerBitmap:Bitmap;<br />

public function BitmapApple(buffer:BitmapData)<br />

{<br />

container = new Sprite();<br />

containerBitmap = new Bitmap(buffer);<br />

containerBitmap.smoothing = true;<br />

container.addChild(containerBitmap);<br />

addChild(container);<br />

}<br />

Letzte Aktualisierung 9.5.2012<br />

68

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!