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