1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | package com.rblab.framework.video { import flash.events.AsyncErrorEvent; import flash.events.NetStatusEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; public class VideoLoop extends Video { //-------------------------------------------------------------------------- // // Private properties // //-------------------------------------------------------------------------- private var _URL : String; private var _connection : NetConnection; private var _stream : NetStream; private var _playedOnce : Boolean = false; //-------------------------------------------------------------------------- // // Constructor // //-------------------------------------------------------------------------- public function VideoLoop(w : int, h : int, videoPath : String, streamer: String) : void { super(w, h); _URL = videoPath; _connection = new NetConnection(); _connection.addEventListener(NetStatusEvent.NET_STATUS, onStatus, false, 0, true); _connection.connect(streamer); _connection.client = this; } //-------------------------------------------------------------------------- // // Private methods // //-------------------------------------------------------------------------- private function initVideo() : void { _stream = new NetStream(_connection); _stream.addEventListener(NetStatusEvent.NET_STATUS, onStatus, false, 0, true); _stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler, false, 0, true); attachNetStream(_stream); var infoClient : Object = new Object(); infoClient.onMetaData = onMetadata; infoClient.onBWDone = onBWDone; _stream.client = infoClient; loadVideo(_URL); } private function loadVideo(url : String) : void { _URL = url; _stream.play(_URL); } //-------------------------------------------------------------------------- // // Public methods // //-------------------------------------------------------------------------- public function resume() : void { _stream.resume(); } public function pause() : void { _stream.pause(); } //-------------------------------------------------------------------------- // // Event handlers // //-------------------------------------------------------------------------- private function onStatus(nse : NetStatusEvent) : void { if (nse.info.code == "NetConnection.Connect.Success" && !_playedOnce) { _playedOnce = true; initVideo(); } if (nse.info.code == "NetStream.Play.Stop" && _playedOnce) { _stream.seek(0); } } private function asyncErrorHandler(event : AsyncErrorEvent) : void { trace(event.toString()); } private function onMetadata(event : Object) : void { } public function onFCSubscribe(event : Object) : void { } public function onBWDone() : void { } } } |
Tag: as3 flash
[AS3 SNIPPET] Url unshortener class using http://untiny.me/ public service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | package com.rblab.framework.net { import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.net.URLLoader; import flash.net.URLRequest; /** * Dispatched when the instance has successfully unshortened an url. * @eventType flash.events.COMPLETE */ [Event(name="complete", type="flash.events.Event")] /** * Dispatched when the instance has encountered an error while trying to unshorten your url. * @eventType flash.events.IOErrorEvent.IO_ERROR */ [Event(name="ioError", type="flash.events.IOErrorEvent")] /** * URL Unshortener Class using http://untiny.me/ public service * For a list of supported services see <a href="http://untiny.me/api/1.0/services/" target="_blank">http://untiny.me/api/1.0/services/</a> * @author Sandro Ducceschi [swfjunkie.com, Switzerland] */ public class URLUnshortener extends EventDispatcher { //-------------------------------------------------------------------------- // // Class variables // //-------------------------------------------------------------------------- private static const UNTINY_ME_URL:String = "http://untiny.me/api/1.0/extract?format=text&url="; //-------------------------------------------------------------------------- // // Initialization // //-------------------------------------------------------------------------- /** * Creates a new URLShortener Instance */ public function URLUnshortener() { init(); } /** * @private * Initializes the instance. */ private function init():void { urlLoader = new URLLoader(); urlRequest = new URLRequest(); urlLoader.addEventListener(Event.COMPLETE,handleComplete); urlLoader.addEventListener(IOErrorEvent.IO_ERROR,handleError); } //-------------------------------------------------------------------------- // // Variables // //-------------------------------------------------------------------------- private var urlLoader:URLLoader; private var urlRequest:URLRequest; //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- /** @private */ private var _url:String; /** * The Unshortened URL */ public function get url():String { return _url; } //-------------------------------------------------------------------------- // // API // //-------------------------------------------------------------------------- /** * Unshortens the given URL * @param url Short URL that should be unshortened */ public function unshorten(url:String):void { _url = null; urlRequest.url = UNTINY_ME_URL + url; urlLoader.load(urlRequest); } /** * Completely destroys the instance and frees all objects for the garbage * collector by setting their references to null. */ public function destroy():void { _url = null; urlLoader = null; urlRequest = null; urlLoader.removeEventListener(Event.COMPLETE,handleComplete); urlLoader.removeEventListener(IOErrorEvent.IO_ERROR,handleError); } //-------------------------------------------------------------------------- // // Eventhandling // //-------------------------------------------------------------------------- /** @private */ private function handleComplete(event:Event):void { if (String(urlLoader.data).indexOf("error") != -1) dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR, false, false, urlLoader.data.toString())); else { _url = urlLoader.data; dispatchEvent(new Event(Event.COMPLETE)); } } /** @private */ private function handleError(event:IOErrorEvent):void { dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR,false,false,"Unshortening failed")); } } } |
[AS3 SNIPPET] Url shortener class using http://is.gd/ public service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | package com.rblab.framework.net { import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.net.URLLoader; import flash.net.URLRequest; /** * Dispatched when the instance has successfully shortened an url. * @eventType flash.events.COMPLETE */ [Event(name="complete", type="flash.events.Event")] /** * Dispatched when the instance has encountered an error while trying to encode your url. * @eventType flash.events.IOErrorEvent.IO_ERROR */ [Event(name="ioError", type="flash.events.IOErrorEvent")] /** * URL Shortener Class using <a href="http://is.gd/" target="_blank">http://is.gd/</a> public service * @author Sandro Ducceschi [swfjunkie.com, Switzerland] */ public class URLShortener extends EventDispatcher { //-------------------------------------------------------------------------- // // Class variables // //-------------------------------------------------------------------------- private static const IS_GD_URL:String = "http://is.gd/api.php?longurl="; //-------------------------------------------------------------------------- // // Initialization // //-------------------------------------------------------------------------- /** * Creates a new URLShortener Instance */ public function URLShortener() { init(); } /** * @private * Initializes the instance. */ private function init():void { urlLoader = new URLLoader(); urlRequest = new URLRequest(); urlLoader.addEventListener(Event.COMPLETE,handleComplete); urlLoader.addEventListener(IOErrorEvent.IO_ERROR,handleError); } //-------------------------------------------------------------------------- // // Variables // //-------------------------------------------------------------------------- private var urlLoader:URLLoader; private var urlRequest:URLRequest; //-------------------------------------------------------------------------- // // Properties // //-------------------------------------------------------------------------- /** @private */ private var _url:String; /** * The Shortened URL */ public function get url():String { return _url; } //-------------------------------------------------------------------------- // // API // //-------------------------------------------------------------------------- /** * Shortens the given URL * @param url Long URL that should be shortened */ public function shorten(url:String):void { _url = null; urlRequest.url = IS_GD_URL + url; urlLoader.load(urlRequest); } /** * Completely destroys the instance and frees all objects for the garbage * collector by setting their references to null. */ public function destroy():void { _url = null; urlLoader = null; urlRequest = null; urlLoader.removeEventListener(Event.COMPLETE,handleComplete); urlLoader.removeEventListener(IOErrorEvent.IO_ERROR,handleError); } //-------------------------------------------------------------------------- // // Eventhandling // //-------------------------------------------------------------------------- /** @private */ private function handleComplete(event:Event):void { _url = urlLoader.data; dispatchEvent(new Event(Event.COMPLETE)); } /** @private */ private function handleError(event:IOErrorEvent):void { dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR,false,false,"Shortening failed")); } } } |