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

Einsparen von Arbeitsspeicher<br />

const MAX_SPRITES:uint = 100;<br />

const GROWTH_VALUE:uint = MAX_SPRITES >> 1;<br />

const MAX_NUM:uint = 10;<br />

SpritePool.initialize ( MAX_SPRITES, GROWTH_VALUE );<br />

var currentSprite:Sprite;<br />

var container:Sprite = SpritePool.getSprite();<br />

addChild ( container );<br />

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

{<br />

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

{<br />

currentSprite = SpritePool.getSprite();<br />

currentSprite.graphics.beginFill ( 0x990000 );<br />

currentSprite.graphics.drawCircle ( 10, 10, 10 );<br />

currentSprite.x = j * (currentSprite.width + 5);<br />

currentSprite.y = i * (currentSprite.width + 5);<br />

container.addChild ( currentSprite );<br />

}<br />

}<br />

Der folgende Code entfernt beim Klicken mit der Maus alle Anzeigeobjekte aus der Anzeigeliste und verwendet sie<br />

später <strong>für</strong> eine andere Aufgabe wieder:<br />

stage.addEventListener ( MouseEvent.CLICK, removeDots );<br />

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

{<br />

while (container.numChildren > 0 )<br />

SpritePool.disposeSprite (container.removeChildAt(0) as Sprite );<br />

}<br />

Hinweis: Der Pool-Vektor verweist immer auf <strong>die</strong> Sprite-Objekte. Wenn Sie das Objekt vollständig aus dem<br />

Arbeitsspeicher entfernen möchten, müssen Sie eine dispose()-Methode <strong>für</strong> <strong>die</strong> SpritePool-Klasse angeben, wodurch<br />

alle verbleibenden Verweise entfernt werden.<br />

Freigeben von Arbeitsspeicher<br />

Löschen Sie alle Verweise auf Objekte, um sicherzustellen, dass <strong>die</strong> Speicherbereinigung ausgelöst wird.<br />

Die Speicherbereinigung kann nicht direkt in der Release-Version von Flash Player gestartet werden. Um<br />

sicherzustellen, dass ein Objekt bei der Speicherbereinigung berücksichtigt wird, löschen Sie alle Verweise auf das<br />

Objekt. Beachten Sie, dass der alte delete-Operator aus ActionScript 1.0 und 2.0 sich in ActionScript 3.0 anders<br />

verhält. Er kann nur verwendet werden, um <strong>die</strong> dynamischen Eigenschaften eines dynamischen Objekts zu löschen.<br />

Hinweis: Sie können <strong>die</strong> Speicherbereinigung direkt in Adobe® AIR® und in der Debugger-Version von Flash Player<br />

aufrufen.<br />

Mit dem folgenden Code wird beispielsweise ein Sprite-Verweis auf null eingestellt:<br />

Letzte Aktualisierung 9.5.2012<br />

12

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!