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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

LEISTUNGSOPTIMIERUNG FÜR DIE <strong>FLASH</strong>-<strong>PLATTFORM</strong><br />

Leistung in ActionScript 3.0<br />

const MAX_NUM:int = 10;<br />

var sceneWidth:int = stage.stageWidth;<br />

var sceneHeight:int = stage.stageHeight;<br />

var currentApple:InteractiveObject;<br />

var currentAppleClicked:InteractiveObject;<br />

var container:Sprite = new Sprite();<br />

addChild ( container );<br />

// Listen to the MouseEvent.CLICK on the apple's parent<br />

// Passing true as third parameter catches the event during its capture phase<br />

container.addEventListener ( MouseEvent.CLICK, onAppleClick, true );<br />

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

{<br />

currentApple = new Apple();<br />

currentApple.x = Math.random()*sceneWidth;<br />

currentApple.y = Math.random()*sceneHeight;<br />

container.addChild ( currentApple );<br />

}<br />

function onAppleClick ( e:MouseEvent ):void<br />

{<br />

currentAppleClicked = e.target as InteractiveObject;<br />

container.removeChild ( currentAppleClicked );<br />

}<br />

Dieser optimierte Code ist wesentlich einfacher und erfordert nur einen Aufruf der addEventListener()-Methode<br />

<strong>für</strong> den übergeordneten Container. Da keine Listener mehr <strong>für</strong> <strong>die</strong> Apple-Instanzen registriert sind, müssen sie beim<br />

Klicken auf einen Apfel auch nicht mehr entfernt werden. Die onAppleClick()-Prozedur kann noch weiter optimiert<br />

werden, indem <strong>die</strong> Fortsetzung des Ereignisses gestoppt wird:<br />

function onAppleClick ( e:MouseEvent ):void<br />

{<br />

e.stopPropagation();<br />

currentAppleClicked = e.target as InteractiveObject;<br />

container.removeChild ( currentAppleClicked );<br />

}<br />

Auch <strong>die</strong> Bubbling-Phase kann zum Abfangen des Ereignisses verwendet werden, indem false als dritter Parameter<br />

an <strong>die</strong> addEventListener()-Methode übergeben wird:<br />

// Listen to the MouseEvent.CLICK on apple's parent<br />

// Passing false as third parameter catches the event during its bubbling phase<br />

container.addEventListener ( MouseEvent.CLICK, onAppleClick, false );<br />

De Standardwert <strong>für</strong> den Parameter der Erfassungsphase ist false; Sie können ihn also weglassen:<br />

container.addEventListener ( MouseEvent.CLICK, onAppleClick );<br />

Arbeiten mit Pixeln<br />

Verwenden Sie zum Zeichnen von Pixeln <strong>die</strong> setVector()-Methode.<br />

Letzte Aktualisierung 9.5.2012<br />

41

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!