Flash, Flex und Silverlight – Multimediatreff
Rich Internet Applications mit Flash oder Flex sind aus dem Web, sowie auch im Mobile Sektor nicht mehr wegzudenken. Viele Applikationen, wie Flash Konfiguratoren und ganze Flex Shops sind mittlerweile Standard und auch mobile Anwendungen wie z.B. Navigationssysteme wurden als RIA`s entwickelt.
Der Multimediatreff am 28. März 2009 in Köln nimmt die Programme Flash, Flex und Silverlight zur Erstellung von RIA`s unter die Lupe und es werden die Vorteile von RIA`s aufgezeigt. Desweiteren wird gezeigt wie schnell man eine AIR Anwendung erstellt und wie effizient FDT als Entwicklungsumgebung zur Programmierung von größeren Flash-Projekten funktioniert. Dafür wurden Experten der Szene eingeladen, darunter auch von Adobe und Microsoft.
Zudem werden einige hochwertige Preise verlost, wie beispielsweise eine FDT Enterprise Edition, eine 3-tägige Flex-Schulung sowie jede Menge Bücher und Video-Trainings zum Thema!
“Mit dieser Jubiläumsveranstaltung zum 25. Multimediatreff richten wir uns verstärkt an Flash/Web-Entwickler und -Designer, die sich einen Überblick der neusten Features und Technologien rund um die Erstellung von Web-und Desktop-Anwendungen mit Flash, Flex & Silverlight verschaffen möchten.”
Flash Filter mit AS 3
Filter in Flash gibt es schon eine ganze Weile. Man kann sie entweder über den Eigenschafteninspektor einem Movieclip zuweisen, oder man programmiert sie in AS 2 oder AS 3. Wir wenden uns heute dem Beispiel eines in AS 3 programmierten Filters zu, da diese wesentlich flexibler zu steuern sind.
1. Zunächst erstellen wir ein BitmapData Objekt mit zwei Rechtecken:
var data:BitmapData = new BitmapData(200, 100, false, 0xFF0000);
var rect:Rectangle = new Rectangle(20, 20, 160, 60);
data.fillRect(rect, 0x00FFFF);
2. Um den Flash Filter anzuwenden, benötigt man 4 Informationen. Zum einen das BitmapData Objekt als Ursprung des Filters, einen Anfangspunkt, den Filter und ein Rechteck auf den der Filter angewendet wird:
var point:Point = new Point(20, 20);
var filter:BlurFilter = new BlurFilter();
data.applyFilter(data, rect, point, filter);
3. Zum Schluß muß das Bitmap noch zur Anzeigeliste hinzugefügt werden:
var bitmap:Bitmap = new Bitmap(data);
bitmap.x = 100;
bitmap.y = 100;
addChild(bitmap);
Mit diesem Basissetup lassen sich so verschiedene Flash Filter erstellen und modifizieren.
Externen Sound mit AS 3 laden und abspielen
Sounds müssen für Flash im MP3 Format vorliegen, um sie extern zu laden. Dazu benötigt man in AS 2, wie auch in AS 3 die Sound Klasse. Mit dieser ist es denkbar einfach einen Sound in Flash zu laden und abzuspielen. Die Klasse wurde in AS 3 aber um einige positive Veränderungen erweitert, auf die wir gleich zu sprechen kommen.
1. Zuerst müssen wir ein Sound Objekt erstellen:
var sound:Sound = new Sound();
2. Externen Sound laden:
sound.load(new URLRequest("sound.mp3"));
Die Methode load(URL), erwartet als Parameter eine Adresse, die in AS 3 immer konsistent mit einem URLRequest Objekt angegeben wird.
Alternativ kann man die Adresse auch vorab definieren:
var adress:URLRequest = new URLRequest("sound.mp3");
Eine andere und somit auch gleichzeitig die kürzeste Variante ist, die Adresse direkt beim Erstellen des Sound Objekts anzugeben:
var sound:Sound = new Sound(new URLRequest("sound.mp3"));
3. Sound steuern:
sound.play();
Neu in AS 3 ist, das man den Sound einem Soundkanal zuweisen muß um ihn weiter zu steuern. So ist jeder Sound der abgespielt wird, Teil eines Soundkanals und kann somit genauer gesteuert werden als noch in AS 2. Bei mehreren Sounds ist das äußerst sinnvoll. Der Soundkanal besitzt eine eigene Klasse, SoundChannel. Das dazugehörige Objekt muß aber nicht instanziert werden, sondern wird von sound.play() zurückgeliefert.
var channel:SoundChannel = sound.play();
Mit channel.stop() kann man dann den Sound auch wieder anhalten.
Animation mit dem Timer Objekt in AS 3
Animationen mit Flash zu erstellen ist nicht schwer. Man setzt einfach 2 Schlüsselbilder in die Zeitleiste, verschiebt den gewünschten Movieclip und schon hat man eine saubere Animation.
Wie aber sieht es aus, wenn man das ganze mit Actionscript erreichen will. Mit AS 2 hatte man da noch die Möglichkeit über setInterval() oder onEnterFrame(), eine gewünschte Funktion immer wiederkehrend aufzrufen. Das kann man natürlich auch noch mit AS 3. Neu in AS 3 ist aber die Klasse Timer. Diese erlaubt ebenfalls das wiederholte Aufrufen einer Funktion und ersetzt dank vieler neuen Features quasi setInterval(). Die Klasse selbst findest du unter flash.utils.
Und so gehts:
1. Timer Objekt erstellen:
var timer:Timer = new Timer(Zeitverzögerung, Wiederholungen);
Zeitverzögerung wird hierbei in Millisekunden angegeben und Wiederholungen bedeutet die maximale Anzahl an Wiederholungen bevor der Timer endet.
2. Event Listener erstellen, der die entsprechende Funktion aufruft:
timer.addEventListener(TimerEvent.TIMER, funktionsname);
TimerEvent kennt zwei Ereignisse: TIMER fängt jede Wiederholung ab, TIMER_COMPLETE wird einmal ausgeführt, wenn der Timer das Ende erreicht hat.
3.Timer starten:
timer.start();
Hier noch ein Beispiel anhand eines beliebigen Movieclips mit dem Instanznamen “mc”.
var timer:Timer = new Timer(20, 200);
timer.addEventListener(TimerEvent.TIMER, moving);
timer.start();
function moving(evt: TimerEvent){
mc.x += 3;
if(mc.x >= Stage.stageWidth){
timer.stop();
}
}
Darüber hinaus gibt es noch die Methode reset(), die den Timer zurücksetzt und currentCount, die ausliest bei wievielen Wiederholungen sich der Timer gerade befindet. running gibt true oder false zurück, je nachdem ob der Timer gerade läuft oder nicht.
