29 ธันวาคม 2552

[034] ลองเอา flash มาเขียนบน haXe

logo_haxe.gif

รู้จักมานานแล้วครับ haXe แต่ไม่เคยได้ลองจริงๆ สักที ได้โอกาสเลยเอา code สำหรับ load video มาโหลด mp4 แล้วเล่นดู ใช้งานได้ดีไม่มีปัญหา แต่สรุปได้ว่า ถ้าจะเขียน flash อยู่แล้ว และเน้น as3 เป็นหลัก haXe อาจไม่ค่อยมีประโยชน์เท่าไหร่นัก แต่ถ้าจะแปลงเป็น C++ เนี่ย น่าสนมาก รอตัว C++ เสร็จแล้วจะมาลองใช้อีกที

เมื่อลอง compile ดูได้ไฟล์ swf ขนาด 4kb เพื่อโหลดไฟล์ mp4 มาเล่นอีกที เล็กมากๆ ครับ สะดวกติดไว้เล่นเพลงบนเว็บไซต์มาก



class Main
{
    static var videoURL:String = "test.mp4";
    static var connection:NetConnection;
    static var stream:NetStream;

    static function main() {
        connection = new NetConnection();
        connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
        connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        connection.connect(null);
    }

    static function netStatusHandler(event:NetStatusEvent) {
        switch (event.info.code) {
            case "NetConnection.Connect.Success":
                connectStream();
                break;
            case "NetStream.Play.StreamNotFound":
                trace("Unable to locate video: " + videoURL);
                break;
        }
    }

    static function connectStream() {
        var stream:NetStream = new NetStream(connection);
        stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
        stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
        stream.addEventListener('onCuePoint', function(e) { trace(e.time); } );
        var video:Video = new Video();
        video.attachNetStream(stream);
        stream.play(videoURL);
        var mc:MovieClip = new MovieClip();
        mc.addChild(video);
       
    }

    static function securityErrorHandler(event:SecurityErrorEvent) {
        trace("securityErrorHandler: " + event);
    }
   
    static function asyncErrorHandler(event:AsyncErrorEvent) {
        // ignore AsyncErrorEvent events.
    }   
}

ที่มาของตัวอย่าง: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/media/Video.html#includeExamplesSummary


ทำไมต้อง mp4 ด้วย เนื่องด้วยตัว Flash 10 รองรับ AAC ซึ่งเป็นการเข้ารหัสเสียงที่สามารถรวมอยู่ในไฟล์ 3gp, mp4, m4a นอกจากจะมีขนาดเล็กแล้วยังคุณภาพดีกว่า mp3 ในขนาดเท่ากันมาก โดยเฉพาะ AAC-HE
(เชื่อไหมว่ามี flash programmer อีกหลายคนไม่รู้ -_-" และอีกหลายคนยังใช้ as2 กันอยู่ ปรับตัวด่วน!)

เกี่ยวกับเจ้าของบล๊อก

รูปภาพของฉัน

เป็นโปรแกรมเมอร์ที่ฝันว่าจะได้นอนเกาพุงไปวัน ๆ จนพุงลดกลายเป็นเอว ได้เป็นบุคคลที่มีความสุขที่สุดในโลกจนคนอื่น ๆ อิจฉา