Möchte man mit FlashDevelop seine eigenen Klassen in eine SWC exportieren, s0 benötigt man zunächst das ExportSWC Plgugin. Das ExportSWC Projekt ist mittlerweile opensource und erhältlich unter http://www.cyberoptix.org/code/ExportSWC.zip oder http://sourceforge.net/projects/exportswc/. Nach dem die Datei herunter geladen wurde, muss die ExportSWC.dll in das Pluginverzeichnis von FlashDevelop kopiert werden. Standartmäßig befindet sich dies unter c:\Programme\FlashDevelop\Plugins\. FlashDevelop muss neu gestartet werden, falls es während des kopierens noch offen war.
Nun solltet Ihr ein neues Symbol in der Leiste haben, so wie das dritte Icon im folgendem Bild.
Falls das Icon grau erschient, dann habt ihr bestimmt eine ältere Version vom ExportSWC geladen und installiert. Das ist kein problem, einfach die neueste noch mal laden und ersetzen.
Ab jetzt könnt ihr eure ActionScript 3 Projekte mit diesem Knopf als SWC exportiern. Nach dem der Exporter gedrückt wurde, wird eine SWC im bin Verzeichnis erstellt.
Ich habe noch mal das Projekt http://www.flashdevelop.de/actionscript-3/bilder-links-rechts-scrollen.html aufgegriffen. Diese Bildergalerie lädt zunächst alle Vorschaubilder und nach Anfrage erst die Originalbilder. Das aneinandergereihten Bilder werden mit der Maus bewegt, je näher die Maus an den Rand kommt, desto schneller bewegt sich das Band.
Die Bilder werden über eine XML-Datei geladen, die Vorschaubilder (Thumbnails) müssen gleich der großen Bilder lauten, mit _T. Das heißt, wenn das große bild img_001.jpg heißt, so muss die Vorschau img_oo1_T.jpg heißen.
Die Projektdateien gibt es am Ende des Artikels. Die zip Datei enthält, aus Platzgründen, nur die Vorschaubilder.
Hier zeige ich eine Möglichkeit, wie ein Objekt in Richtung eines vorgegebenen Punktes fährt. Das Objekt soll sich immer langsamer an den Punkt annähern. Dies erreichen wir, in dem wir die Distanz vom Objekt zum Ziel ermitteln und mit einem Faktor (xSpeed, ySpeed) mulitpliziren. Den so ermittelten Wert können wir ganz einfach zu der aktuellen Position des Objektes addieren. Um der ganzen Bewegung ein Ende zu geben, brechen wir mit einem vorgegebenen Kleinstwert (xTeminate, yTerminate) ab.
Hat man einen Winkel (angle) und eine Geschwindigkeit (speed) und möchte gerne die Verschiebung auf x und y haben, so kann dies mit Sinus und Kosinus berechnet werden.
var vx:Number = speed * Math.cos(angle);
var vy:Number = speed * Math.sin(angle);
sprite.x += vx;
sprite.y += vy;
Manchmal ist es notwendig einen Hexadezimalwert in RGB Aufzugsplitten.
var red:int = color >> 16;
var green:int = color >> 8 & 0xFF;
var blue:int = color & 0xFF;
Die Umkehrung würde dann folgendermaßen aussehen
var color:int = red << 16 | green << 8 | blue;
Hat man zusätzlich einen vorrangestellten Alphawert, schiebt man Alpha 24mal nach rechts. Diesen bekommt man zum Beispiel aus der BitmapData::getPixel32
var alpha:int = color >> 24;
var red:int = color >> 16 & 0xFF;
var green:int = color >> 8 & 0xFF;
var blue:int = color & 0xFF;
//---
var color:int = alpha << 24 | red << 16 | green << 8 | blue;
Nachtrag 11.03.2010 : Das Thema scheint jetzt zum Ende gekommen zu sein. Ich füge dem Beitrag die letzte Version 5 hinzu. Am Ende des Beitrages stehen alle Versionen zum Download bereit.