13.10.2009, 22:55 | tipps-tricks
07.07.2009, 10:29 | tipps-tricks
MovieClips in AS3 einfärben
In der Flash IDE gibt es eine Funktion zum Einfärben eines MovieClips bzw. einer DisplayObject-kompatiblen Instanz. In ActionScript wird dies über ColorTransform geregelt, allerdings ist die Abbildung dieser Einfärben-Funktion nicht intuitiv.
Erstaunlicherweise findet man relativ wenig konkrete Informationen dazu im Internet, deshalb hier eine schmale und kurze Lösung, welches Einfärben über ColorTransform regelt.
function tint(mc:MovieClip, color:Number, percent:Number):void {
var ct:ColorTransform = new ColorTransform();
ct.color = color;
ct.redOffset *= percent;
ct.greenOffset *= percent;
ct.blueOffset *= percent;
ct.redMultiplier = 1-(ct.redOffset/255);
ct.greenMultiplier = 1-(ct.greenOffset/255);
ct.blueMultiplier = 1-(ct.blueOffset/255);
mc.transform.colorTransform = ct;
}
29.04.2009, 10:13 | tyclipso
Inkompatibilitäten in den SOAP-Implementationen der verschiedenen Anbieter - Teil 2
Heute habe ich Zeit die im 1. Teil meines Blogs zu Inkompatibilitäten in SOAP-Implementationen angekündigte Fortsetzung zu verfassen. Beginnen möchte ich mit einem Outting der "schwarze Schafe".
02.07.2008, 10:44 | google
Flash-Inhalte bei Google jetzt indizierbar
Vorbei soll es sein, dass Flash-Webseiten schwarze Löcher bei Google darstellen, wenn es nach Adobe geht. Der Monopolist im Bereich Desktop-Publishing hat bekannt gegeben, Suchmaschinenbetreibern, wie Google und Yahoo eine Technologie übergeben zu haben, die das Durchsuchen von Flash-Inhalten vollständig ermöglichen soll.
27.05.2008, 18:54 | web20
Neues von der Webinale
Die vergangenen 3 Tage fand in Karlsruhe die Webinale statt, in der es um die neuesten Trends und Technologien im Bereich Web & Mobile ging. Die tyConauten Mike und Frank - meine Person - waren auch von der Partie um neue Ideen aufzuschnappen und zu sehen wie sich der Markt um Web2.0 weiter entwickelt.
13.01.2008, 13:31 | tipps-tricks
MovieClip Management
Das besonders Unerklärliche war, dass nur der Projektor von diesem Phänom betroffen war, die zu Grunde liegende Shockwave-Datei blieb davon unberührt wie dieses Bildschirmfoto beweist:
Nach einer Reihe von Versuchen bin ich dann dahinter gekommen: Mit der Loader-Klasse geladene SWF-Dateien laufen auch nach vermeintlichem Entfernen im Hintergrund weiter. Der Garbage-Collector wird daran gehindert, den MovieClip und sein Eltern-Loader-Objekt aufzuräumen und aus dem Speicher zu entfernen.
Bestätigung für diesen Fehler fand ich auf dieser Seite "Garbage collector troubles using the loader class".
Weitere Nachforschungen ergaben, dass in AS3-exportiere (also in der selben Version wie die Host-Anwendung), SWFs dieses Problem nicht besaßen, zumindest nicht ganz so gravierend.
Mit einem Umschreiben (neu exportieren) der einzuladenden SWF in AS3 war das Problem minimiert, jedoch nicht ganz gelöst. Nun lief die CPU-Last nicht mehr bis über 90% an, dafür konnte man jedoch sehen, dass weiterhin ein Prozess im Hintergrund lief.
Ursache dafür sind in der SWF definierte EventListener und Interval-Aufrufe. Der GarbageCollector kann keine MovieClips entfernen die solche definiert haben. Damit es funktioniert, müssen diese manuell entfernt werden. Da ich die einzuladende SWF jedoch nicht von außen steuern wollte, behalf ich mir mit einem Trick innerhalb ihrer Hauptprozedur.
public function Constructor() {
// Starte Zufallsgenerator der Balken
interval1 = setInterval(zufallPeak, 1100);
interval2 = setInterval(zufallPeak, 1639);
// Starte Dekorationsanimation
addEventListener(Event.ENTER_FRAME, runDecoration);
}
private function runDecoration(ev:Event):void {
if (stage == null) removeMe();
}
private function removeMe():void {
trace("remove Me");
removeEventListener(Event.ENTER_FRAME, runDecoration);
clearInterval(interval1);
clearInterval(interval2);
}
Beim Entfernen des MovieClips mittels removeChild() aus der Anzeigeliste werden dessen Zeiger parent und stage auf NULL gesetzt. Auch wenn der Interval-Handler zufallPeak weiterläuft, das Objekt also nicht vollständig entfernt werden kann. Dieses Beispiel prüft in jedem ENTER_FRAME-Event, ob der Zeiger auf die Bühne noch existiert. Wenn nicht, werden die Intervalle beendet und Event-Handler entfernt. Das MovieClip kann nun vollständig vom GarbageCollector aufgeräumt werden, der Speicher wird frei und die CPU-Last bleibt niedrig.
02.11.2007, 17:43 | myty_blog
Produkt21 Dreipunktnull (360° Produktrotation)
In diesem Beispiel werden die XML-Konfiguration, die Steuerungselemente sowie die Einzelbilder auf Anfrage von dem fremden Server solongo.de gelesen. Der Speicherverbrauch ist zwar weiterhin hoch, jedoch läuft die neue Version wesentlich stabiler.
Ich möchte hiermit zum Testen einladen und bitte darum aufgetretene Fehler als Kommentar zu melden. Wenn alles soweit stabil genug läuft, veröffentliche ich meine Erfahrungen mit den Richtlinien ausführlich in einem neuen Blog-Eintrag.
28.08.2007, 14:35 | flash_silverlight
Open Source Flash
Alles was man benötigt ist:
- Die .NET 2-Laufzeitumgebung von Microsoft für FlashDevelop
- Die inoffizielle Version von FlashDevelop 3 Beta 2
- Das Flex 2 SDK von Adobe
- und zu guter letzt die Adobe Flex Compiler Shell (optional)
Nach Installation von .NET und FlashDevelop muss das Flex SDK nur noch an beliebige Stelle im Dateisystem entpackt werden und die Verzeichnisse lib/ und bin/ der Compiler Shell dort hinein verschieben.
Um ActionScript 3 kompilieren zu können, muss man der IDE noch mitteilen, wo sie den Compiler findet. Dazu klickt man im Menü auf Tools -> Installed Plugins... -> AS3 Context -> Settings... und wählt den entsprechenden Pfad für Flex 2 SDK Location.

Anschließend kann man über Project -> New Project -> ActionScript 3 - Default Project ein neues Projekt erzeugen und mit Project -> Test Movie kompilieren. Das Debug-Profil für den Compiler scheint noch nicht richtig zu funktionieren, deswegen sollte man dieses vor dem Prozess auf Release stellen. Allerdings verliert man dadurch trace()-Ausgaben.
Projektspezifische Einstellungen findet man unter dem Punkt Properties wo unter anderem die Bühnengröße und Hintergrundfarbe festlegt wird. Wichtig finde ich die Option Open SWF in: External, weil die interne Darstellung die Bühnengröße verzerrt.
Ein Testprojekt was einige Änderungen von AS2 zu AS3 zeigt kann man hier herunterladen.

