ActionScript 3: haXe Compiler

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.

ActionScript 3 mit dem haXe-Compiler in der Eclipse IDE

Link: haXe (Compiler für SWF-Dateien, Flash Player 6 bis 9)
Link: Eclipse (IDE)
Link: Eclihaxe (Plug-in für Eclipse)

7 Gedanken zu „ActionScript 3: haXe Compiler“

  1. Obwohl ich persoenlich Eclipse vorziehe, unter Flashdevelop.org gibt es eine ordentliche IDE die unter anderem auch haXe unterstuetzt. Selbst SWFMill funktionalitaet ist bereits mit eingebaut.

  2. Pingback: www.video-flash.de
  3. AS3WebcamExample.hx

    /*
    ActionScript 3 Webcam Example
    http://www.video-flash.de
    */

    class AS3WebcamExample {
    static function main() {
    var wc:Webcam = new Webcam();
    }

    }

    Und die Datei Webcam.hx:

    /*
    http://www.video-flash.de
    */

    import flash.display.Sprite;
    import flash.events.NetStatusEvent;

    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;

    import flash.events.Event;
    import flash.events.TimerEvent;
    import flash.events.ActivityEvent;

    import flash.media.Camera;
    import flash.media.Microphone;
    import flash.utils.Timer;

    import flash.text.TextField;

    class Webcam{

    var myTimer:Timer;
    var cam:Camera;
    var tf:TextField;
    private var motionState:String;

    public function new(){

    createTxt();

    var myVideo:Video = new Video(400,300);
    flash.Lib.current.addChild(myVideo);
    myVideo.y = 100;

    var nc:NetConnection = new NetConnection();
    nc.connect(null);

    var ns:NetStream = new NetStream(nc);

    // Kamera initialisieren
    cam = Camera.getCamera();

    // Kamera-Modus festlegen: 400×300 mit 10 Bildern pro Sekunde
    cam.setMode(400,300,10);

    // Anzahl der Keyframes festlegen (für eine Uebertragung an den FMS): Keyframe alle 50 Bilder
    cam.setKeyFrameInterval(50);

    // Qualitaet einstellen (für eine Uebertragung an den FMS): Bandbreite ist 16384 Bytes pro Sekunde, Qualität wird angepasst (=0)
    cam.setQuality(16384,0);

    // Mikrophone
    var mic:Microphone = Microphone.getMicrophone();
    mic.rate=10;

    // Kamera mit Videodisplay verbinden
    myVideo.attachCamera(cam);

    // bei 40% Bewegunganslevel das Activity-Event auslösen
    // nach 1s (=1000ms)
    cam.setMotionLevel(40, 1000);
    cam.addEventListener(ActivityEvent.ACTIVITY, activityHandler);

    //Neuer Timer, Funktionsaufruf alle 500 ms
    myTimer = new Timer(500);
    myTimer.addEventListener(„timer“, timedFunction);
    myTimer.start();
    }

    private function timedFunction(eventArgs:TimerEvent) {
    tf.text = „Bilder pro Sekunde: “ + cam.currentFPS + „\n“ + „\n“ + „Bewegung im Bild: “ + cam.activityLevel + „\n“ + motionState;
    }

    private function activityHandler(event:ActivityEvent) {

    if (event.activating == true) {
    this.motionState = „Bewegungslevel ueberschritten“;
    }

    else {
    this.motionState = „Bewegungslevel wieder unterschritten“;
    }
    }

    private function createTxt() {
    tf = new TextField();
    flash.Lib.current.addChild(tf);
    tf.width = 600;
    }

    }

  4. Hi,
    beschäftige mich gerade ein wenig mit Haxe und wollte das obige Beispiel mal bei mir ausprobieren. Leider bekomm ich das Eclipse plugin nirgendwo mehr her und habs dann mal so auf der Kommandozeile versucht. Wenn ich jedoch die Webcam.hx compilieren möchte, bekomme ich folgende Fehlermeldung:
    /usr/lib/haxe/std/Webcam.hx:5: characters 0-28 : Class not found : flash.display.Sprite
    Liegt das evtl. daran, dass ne environment variable nicht gut gesetzt ist, oder muss man noch irgendwo her die Flash API runterladen und die mit einbinden?
    Gruß, Iso5786

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert