8 Jan 2007
In ActionScript 3 gibt es eine neue Timer-Klasse (flash.utils.Timer), die für zeitbasierte Anwendungszwecke gedacht ist. Ein Timer löst nach einem definierten Zeitintervall ein Event aus. Zusätzlich kann bestimmt werden, ob der Timer “unendlich” lange läuft oder nach einer bestimmten Anzahl an ausgelösten Events aufhört (z.B. nach 10x in einem Intervall von 500ms).
Ein Timer in ActionScript 3 kann somit die aus ActionScript 2 bekannten Funktion setInterval, setTimeout() oder auch das onEnterFrame-Event ersetzen. (Die Funktionen setInterval/setTimeout sind zwar noch in ActionScript 3 vorhanden, erzeugen jedoch Compiler-Warnungen.)
5 Jan 2007
Mit dem Open-Source-Compiler haXe lassen sich SWF-Dateien für den Flash Player 6 bis 9 erstellen. haXe unterstützt deshalb auch die komplette ActionScript 3 API, mit einigen wenigen Abweichungen (z.B. flash.Lib.current statt _root).
Über das Eclipse-Plugin Eclihaxe kann der Compiler in Eclipse integriert werden. Interessant ist dies wohl vorallem für diejenigen, die keine Flash IDE haben (Flash 9 Alpha) oder einfach mal was neues ausprobieren möchten …
Hier der Link zu einem kleinen Beispiel, das ich mit haXe gemacht habe: AS3-”Webcam”-Beispiel (Webcam und Flash Player 9 nötig). Getestet habe ich die NetConnection, NetStream und Camera Klasse, die alle tadellos übersetzt wurden.
Link: haXe (Compiler für SWF-Dateien, Flash Player 6 bis 9)
Link: Eclipse (IDE)
Link: Eclihaxe (Plug-in für Eclipse)
Im Adobe Developer Center steht seit einer Weile ein Artikel mit dem Thema “Implementing a dual-threshold buffering strategy in Flash Media Server” von Fabio Sonnati. Dies hört sich zunächst einmal komplizierter an als es wirklich ist …
Die Strategie beschäftigt sich mit der Puffergröße eines Videostreams. Üblicherweise steht man vor dem Problem, sich für eine Puffergröße zu entscheiden. Sie lässt sich über die Methode NetStream.setBufferTime(Zeit in Sekunden) setzen. Doch nach welchen Kriterien wählt man die Zeitangabe des Buffers?
In ActionScript 3 wird es eine neue Funktion der NetStream-Klasse mit dem Namen togglePause geben. Dies trägt dem Sachverhalt Rechnung, dass man oftmals einen kombinierten Play/Pause-Button erstellen möchte.
Die Funktion pause() unterbricht bei ActionScript 3 die Videowiedergabe nur noch und kann das Video nicht mehr starten. Ist das Video bereits im Pause-Zustand, passiert nichts.
Neu ist die Funktion resume(). Bei resume() wird ein pausiertes Video wieder gestartet. Läuft das Video bereits, passiert nichts.
Als Erweiterung zum Beitrag Videos abspielen mit ActionScript 3 folgt nun ein zweites Codebeispiel, das zeigt, wie folgende Themen in ActionScript 3 realisiert werden können:
* Statusmeldungen
* Metadaten
* CuePoints
Wesentliche Neuerung ist der ns.client, dem ein Objekt zugewiesen. Dieses Objekt (customClient im Beispiel) ist dann zuständig für die Metadaten und CuePoints. Die Statusmeldung funktionieren weiterhin mit einem eventListener.
17 Sep 2006
Um Videos ohne Komponente mit Flash 9 und ActionScript 3 abzuspielen, muss sich im Gegensatz zu ActionScript 2 kein Video-Objekt mehr auf der Bühne befinden. Das Video-Objekt kann dynamisch per ActionScript erstellt werden. Der Konstruktor heißt Video(). Mit addChild wird das Video-Objekt auf der Bühne platziert.
Die Video-Klasse wurde verschoben und befindet sich im Package mit dem Namen flash.media. Die NetStream-Klasse ist in ActionScript 3 im Package flash.net zu finden.
Hinweis: Das Beispiel ist nur für die Flash Professional 9 ActionScript 3.0 Preview gedacht.