15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Anwenden von Filtern auf Anzeigeobjekte<br />

Anhand dieser Informationen wird die angegebene Datei durch die Controller-Instanz geladen und nach dem Laden<br />

in der Instanzvariable _currentTarget gespeichert:<br />

private var _currentTarget:DisplayObject;<br />

private function targetLoadComplete(event:Event):void<br />

{<br />

...<br />

_currentTarget = _loader.content;<br />

...<br />

}<br />

Wenn der Benutzer einen Filter auswählt, wird die setFilter()-Methode der Controller-Instanz mit einem Verweis auf<br />

das relevante Factory-Objekt für Filter aufgerufen, das dann in der Instanzvariable _filterFactory gespeichert wird.<br />

private var _filterFactory:IFilterFactory;<br />

public function setFilter(factory:IFilterFactory):void<br />

{<br />

...<br />

}<br />

_filterFactory = factory;<br />

_filterFactory.addEventListener(Event.CHANGE, filterChange);<br />

Wie zuvor beschrieben, erkennt die Controller-Instanz den spezifischen Datentyp der angegebenen Factory-Instanz<br />

für Filter nicht. Sie erkennt lediglich, dass das Objekt die IFilterFactory-Instanz implementiert, d. h., dass sie über eine<br />

getFilter()-Methode verfügt und ein change-Ereignis (Event.CHANGE) auslöst, wenn der Filter geändert wird.<br />

Wenn der Benutzer die Eigenschaften eines Filters im Bedienfeld für den Filter ändert, erkennt die Controller-Instanz<br />

die Änderung des Filters durch das change-Ereignis der Factory-Klasse für Filter, bei dem die filterChange()-<br />

Methode der Controller-Instanz aufgerufen wird. Diese Methode ruft wiederum die applyTemporaryFilter()-<br />

Methode auf:<br />

private function filterChange(event:Event):void<br />

{<br />

applyTemporaryFilter();<br />

}<br />

private function applyTemporaryFilter():void<br />

{<br />

var currentFilter:BitmapFilter = _filterFactory.getFilter();<br />

}<br />

// Add the current filter to the set temporarily<br />

_currentFilters.push(currentFilter);<br />

// Refresh the filter set of the filter target<br />

_currentTarget.filters = _currentFilters;<br />

// Remove the current filter from the set<br />

// (This doesn't remove it from the filter target, since<br />

// the target uses a copy of the filters array internally.)<br />

_currentFilters.pop();<br />

Das Anwenden des Filters auf das Anzeigeobjekt erfolgt in der applyTemporaryFilter()-Methode. Die Controller-<br />

Instanz ruft zunächst einen Verweis auf das Filterobjekt ab, indem sie die getFilter()-Methode der Factory-Klasse<br />

für Filter aufruft.<br />

Letzte Aktualisierung 27.6.2012<br />

317

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

Saved successfully!

Ooh no, something went wrong!