forked from: flash on 2012-1-3

by ohisama
[SWF(width="465", height="465", frameRate="30", backgroundColor="#FFFFFF")]
♥0 | Line 146 | Modified 2013-02-01 12:07:59 | MIT License
play

ActionScript3 source code

/**
 * Copyright ohisama ( http://wonderfl.net/user/ohisama )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/shCz
 */

// forked from Barrel.Roll's flash on 2012-1-3
package 
{
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.events.*;
    import flash.net.*;
    import flash.system.*;
    //[SWF(width="465", height="465", frameRate="30", backgroundColor="#FFFFFF")]   
    public class FlashTest extends Sprite 
    {
        private var tf : TextField;
        private var connections : Array;
        public function FlashTest() 
        {
            tf = new TextField();
            tf.width = stage.stageWidth;
            tf.height = stage.stageHeight;
            tf.text = "koko";
            tf.multiline = true;
            addChild(tf);
            var _local3 : Object = new Object();
            FlashTest.version(_local3);
            if ((((_local3.major < 9)) || ((((_local3.major == 9)) && ((_local3.build < 60))))))
            {
                tf.text = "Old version of Flash!";
                return;
            }
            connectTo("cp23059.edgefcs.net/ondemand/ondemand?ovpfv=1.1");
        }
        public static function version(_arg1 : Object) : void
        {
            var _local2 : String = Capabilities.version;
            var _local3 : Array = _local2.split(",");
            var _local4 : Array = _local3[0].split(" ");
            _arg1.os = _local4[0];
            _arg1.major = parseInt(_local4[1]);
            _arg1.minor = parseInt(_local3[1]);
            _arg1.build = parseInt(_local3[2]);
        }
        public function DoStuff(arg : String) : void 
        {
            this.tf.text = arg;
        }
        public function loadXML() : void 
        {
           var _local2 : URLRequest = new URLRequest("http://events.digitallyspeaking.com/gdc2010/xml/10642_1268428865875CUKG.xml");
           var _local3 : URLLoader = new URLLoader(_local2);
           _local3.addEventListener(Event.COMPLETE, this.xmlLoaded);
        }
        public function xmlLoaded(_arg1:Event):void
        {
            var event : * = _arg1;
            //this.tf.text = "YEEEEEEEEAAAA1AH";
            var xml : XML = XML(URLLoader(event.currentTarget).data);
            //trace(("Data loaded." + this.xml.metadata.toXMLString()));
            var isLive : Boolean = (xml.metadata.isLive.toString() == "true");
            var isProgressive : Boolean = (xml.metadata.akamaiHost == "null");
            var connectURL : String = ((isProgressive) ? null : (xml.metadata.akamaiHost.toString() + ((isLive) ? "/live" : "/ondemand")));
            this.tf.text = connectURL;
            //this.title = this.xml.metadata.title.split("/n").join("\n");
            //this.speaker = this.xml.metadata.speaker.split("/n").join("\n");
        }
        public function connectTo(_arg1 : String, ... _args) : void
        {
            //var _hostName:String = ((_arg1.indexOf("/"))!=-1) ? _arg1.slice(0, _arg1.indexOf("/")) : _arg1;
            //var _appNameInstName:String = ((((!((_arg1.indexOf("/") == -1))) && (!((_arg1.indexOf("/") == (_arg1.length - 1)))))) ? _arg1.slice((_arg1.indexOf("/") + 1)) : "");
            var _protos : Array = [
            {
                 port:"1935",
                 protocol:"rtmp"
            }, 
            {
                 port:"443",
                 protocol:"rtmp"
            }, 
            {
                 port:"80",
                 protocol:"rtmp"
            }, 
            {
                 port:"80",
                 protocol:"rtmpt"
            }, 
            {
                 port:"443",
                 protocol:"rtmpt"
            }, 
            {
                 port:"1935",
                 protocol:"rtmpt"
            }, 
            {
                 port:"1935",
                 protocol:"rtmpe"
            }, 
            {
                 port:"443",
                 protocol:"rtmpe"
            }, 
            {
                 port:"80",
                 protocol:"rtmpe"
            }, 
            {
                 port:"80",
                 protocol:"rtmpte"
            }, 
            {
                 port:"443",
                 protocol:"rtmpte"
            }, 
            {
                 port:"1935",
                 protocol:"rtmpte"
            }];          
           var _cnt : uint = 0;
           this.connections = new Array();
           this.tf.text = "";
           while (_cnt < _protos.length) 
           {
               try 
               {
                   this.tf.appendText(String(_cnt));
                    this.connections[_cnt] = new NetConnection();
                    this.connections[_cnt].connect(_protos[_cnt].protocol + "://" + _arg1);
                    this.connections[_cnt].addEventListener(NetStatusEvent.NET_STATUS, this.netStatus);
                    //this._aNC[this._connectionAttempt].connect(this._aConnections[this._connectionAttempt].address, this._connectionArgs);
                } 
                catch (error : Error) 
                {
                    this.tf.appendText(_protos[_cnt].protocol + " is not working!");
                }
                _cnt++;
                return; 
                // TODO: remove this and implement a whole loop
            }
        }
        protected function netStatus(_arg1 : NetStatusEvent) : void
        {
            switch (_arg1.info.code)
            {
            case "NetConnection.Connect.InvalidApp":
            case "NetConnection.Connect.Rejected":
                this.tf.text = "Rejected"
            break;
            case "NetConnection.Call.Failed":
                this.tf.text = "Failed"
            break;
            case "NetConnection.Connect.Success":
                this.tf.appendText(" Success");
            break;
            };
        }
    }
}