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;