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

An die FilterWorkbenchController-Klasse müssen nicht die spezifischen Einzelheiten der einzelnen Factory-Klassen<br />

für Filter übergeben werden. Es muss lediglich angegeben werden, dass ein Filter geändert wurde, und die Klasse muss<br />

auf eine Kopie des Filters zugreifen können. Dazu enthält die Anwendung die IFilterFactory-Schnittstelle, über die das<br />

erforderliche Verhalten der Factory-Klassen für Filter definiert wird, sodass die entsprechenden Vorgänge durch die<br />

FilterWorkbenchController-Instanz durchgeführt werden können. Die IFilterFactory-Schnittstelle definiert die<br />

getFilter()-Methode, die in der FilterWorkbenchController-Klasse verwendet wird:<br />

function getFilter():BitmapFilter;<br />

Beachten Sie, dass in der Definition der getFilter()-Methode angegeben ist, dass kein bestimmter Filtertyp,<br />

sondern eine BitmapFilter-Instanz zurückgegeben wird. Mit der BitmapFilter-Klasse wird kein bestimmter Filtertyp<br />

definiert. Bei der BitmapFilter-Klasse handelt es sich vielmehr um die Basisklasse, die allen Filterklassen zugrunde<br />

liegt. Jede Factory-Klasse für Filter definiert eine spezifische Implementierung der getFilter()-Methode, in der ein<br />

Verweis auf das durch die Klasse erstellte Filterobjekt zurückgegeben wird. Es folgt der Quellcode der<br />

ConvolutionFactory-Klasse in gekürzter Form:<br />

public class ConvolutionFactory extends EventDispatcher implements IFilterFactory<br />

{<br />

// ------- Private vars -------<br />

private var _filter:ConvolutionFilter;<br />

...<br />

// ------- IFilterFactory implementation -------<br />

public function getFilter():BitmapFilter<br />

{<br />

return _filter;<br />

}<br />

...<br />

}<br />

In der Implementierung der getFilter()-Methode durch die ConvolutionFactory-Klasse wird eine<br />

ConvolutionFilter-Instanz zurückgegeben, auch wenn dieser Instanztyp für Objekte, die getFilter() aufrufen, u. U.<br />

unbekannt ist. Entsprechend der Definition der getFilter()-Methode durch die ConvolutionFactory-Klasse kann<br />

eine beliebige BitmapFilter-Instanz zurückgegeben werden, die eine Instanz einer der ActionScript-Filterklassen ist.<br />

Anwenden von Filtern auf Anzeigeobjekte<br />

Flash Player 9 und höher, Adobe AIR 1.0 und höher<br />

Wie bereits erläutert wurde, wird in der Anwendung „Filter Workbench“ eine Instanz der<br />

FilterWorkbenchController-Klasse (im Folgenden als „Controller-Instanz“ bezeichnet) verwendet, um Filter auf das<br />

ausgewählte Anzeigeobjekt anzuwenden. Damit über die Controller-Instanz Filter angewendet werden können, muss<br />

zunächst festgelegt werden, auf welches Bild oder welchen grafischen Inhalt der entsprechende Filter angewendet<br />

werden soll. Wenn der Benutzer ein Bild auswählt, wird in der Anwendung die setFilterTarget()-Methode der<br />

FilterWorkbenchController-Klasse aufgerufen und eine der in der ImageType-Klasse definierten Konstanten<br />

übergeben:<br />

public function setFilterTarget(targetType:ImageType):void<br />

{<br />

...<br />

_loader = new Loader();<br />

...<br />

_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, targetLoadComplete);<br />

...<br />

}<br />

Letzte Aktualisierung 27.6.2012<br />

316

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

Saved successfully!

Ooh no, something went wrong!