Leistungsoptimierung für die ADOBE FLASH-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
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