15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Anwenden von Filtern auf Anzeigeobjekte<br />

Filter und Bitmap-Zwischenspeicherung<br />

Um einen Filter auf ein Anzeigeobjekt anwenden zu können, muss die Bitmap-Zwischenspeicherung für das Objekt<br />

aktiviert sein. Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, dessen cacheAsBitmap-Eigenschaft auf false<br />

gesetzt ist, wird die cacheAsBitmap-Eigenschaft des Objekts automatisch auf true gesetzt. Wenn Sie später sämtliche<br />

Filter eines Anzeigeobjekts entfernen, wird die cacheAsBitmap-Eigenschaft auf den Wert zurückgesetzt, der zuletzt<br />

eingestellt war.<br />

Ändern von Filtern zur Laufzeit<br />

Wenn einem Anzeigeobjekt bereits ein oder mehrere Filter zugewiesen wurden, können Sie diesen Filtersatz nicht<br />

ändern, indem Sie zusätzliche Filter hinzufügen oder Filter aus dem Array der filters-Eigenschaft entfernen. Um<br />

den bereits angewendeten Filtersatz zu erweitern oder zu ändern, müssen Sie die Änderungen an einem separaten<br />

Array vornehmen und dieses Array dann der filters-Eigenschaft des Anzeigeobjekts für die auf das Objekt<br />

anzuwendenden Filter zuweisen. Die einfachste Methode dafür ist das Einlesen des Arrays der filters-Eigenschaft<br />

in eine Array-Variable und das Vornehmen von Änderungen in diesem temporären Array. Anschließend weisen Sie<br />

das Array wieder der filters-Eigenschaft des Anzeigeobjekts zu. In komplexeren Fällen müssen Sie unter<br />

Umständen ein separates Master-Filter-Array verwenden. Sie nehmen dann alle Änderungen an diesem Master-<br />

Filter-Array vor und weisen das Master-Array der filters-Eigenschaft des Anzeigeobjekts nach jeder Änderung<br />

erneut zu.<br />

Hinzufügen eines zusätzlichen Filters<br />

Der folgende Code zeigt das Hinzufügen eines zusätzlichen Filters zu einem Anzeigeobjekt, das schon einen oder<br />

mehrere Filter aufweist. Zunächst wurde ein Glühen-Filter auf ein Anzeigeobjekt namens myDisplayObject<br />

angewendet. Beim Klicken auf das Anzeigeobjekt wird dann die Funktion addFilters() aufgerufen. In dieser<br />

Funktion werden zwei zusätzliche Filter auf myDisplayObject angewendet:<br />

import flash.events.MouseEvent;<br />

import flash.filters.*;<br />

myDisplayObject.filters = [new GlowFilter()];<br />

function addFilters(event:MouseEvent):void<br />

{<br />

// Make a copy of the filters array.<br />

var filtersCopy:Array = myDisplayObject.filters;<br />

}<br />

// Make desired changes to the filters (in this case, adding filters).<br />

filtersCopy.push(new BlurFilter());<br />

filtersCopy.push(new DropShadowFilter());<br />

// Apply the changes by reassigning the array to the filters property.<br />

myDisplayObject.filters = filtersCopy;<br />

myDisplayObject.addEventListener(MouseEvent.CLICK, addFilters);<br />

Entfernen eines Filters aus einem Filtersatz<br />

Wenn mehrere Filter auf ein Anzeigeobjekt angewendet wurden und Sie einen der Filter entfernen möchten, während<br />

die anderen Filter weiter auf das Objekt angewendet sind, können Sie die Filter in ein temporäres Array kopieren, den<br />

unerwünschten Filter aus diesem Array entfernen und das temporäre Array der filters-Eigenschaft des<br />

Anzeigeobjekts neu zuweisen. Verschiedene Möglichkeiten zum Entfernen eines oder mehrerer Elemente aus einem<br />

Array werden im Abschnitt „Abrufen von Werten und Entfernen von Array-Elementen“ auf Seite 32 beschrieben.<br />

Letzte Aktualisierung 27.6.2012<br />

288

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!