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