flash on 2013-11-9

by tepe
♥0 | Line 139 | Modified 2013-11-15 16:12:58 | MIT License
play

ActionScript3 source code

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

package {
    import flash.text.*;
    import flash.display.*;
    import flash.net.*;
    import flash.events.*;
    import flash.utils.*;
    import flash.system.*;
    public class FlashTest extends Sprite {
        private var loader:TubeLoader;
        private var t:TextField = new TextField();
        private var t2:TextField = new TextField();
        
        public function FlashTest(){
            loader = new TubeLoader();
            loader.addEventListener(Event.COMPLETE,onComplete);
            //loader.requestWords("初音ミク");
            //loader.requestWords("初音ミク");
            addChild(t);
            t.height=300;
            t.width = 400;
            t.y =30;
            
            t2.border = true;
            t2.type ="input";
            t2.height = 20;
            t2.width = 120;
            t2.x = 300;
            addChild(t2);
            t2.addEventListener(KeyboardEvent.KEY_UP,onKey);
        }
        private function onKey(e:KeyboardEvent):void{
            if(e.keyCode == 13){
                loader.requestWords(t2.text);
            }
        }
        private function onComplete(e:Event):void{            
            t.text = "";
            for(var i:int=0;i<loader.idList.length;i++){
                t.text+=loader.idList[i].toString()+"\n";
                t.text+=loader.titleList[i]+"\n";
                t.text+=loader.authorList[i]+"\n";
            }
            t.text+="\n";
            t.scrollV = t.maxScrollV;
            //t.text += loader._xml;
        }
            
    }
}


import flash.text.*;
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.utils.*;
import flash.system.*;
class TubeLoader extends Sprite{

        //動画ID取得
        //投稿者取得
        //動画タイトル取得
        //再生時間取得
        
        //キーワード検索
        //投稿者検索
        
        private var loader:URLLoader;
        public var idList:Array;
        public var titleList:Array;
        public var authorList:Array;
        private var _words:String = "";//前回の検索ワード
        private var cnt:int=0;//リクエスト回数
        
        public function TubeLoader() {
            idList = new Array();
            titleList = new Array();
            authorList = new Array();
        }
        
        public function clear():void{
            idList = new Array();
            titleList = new Array();
            authorList = new Array();
            cnt=0;
        }
        
        public function requestWords(key:String):void{            
            var str:String = "http://gdata.youtube.com/feeds/api/videos/-/";
            if(_words != key){ 
                _words = key;
                clear();
            }
            str += escapeMultiByte(_words);
            str += "?v=2";
            str += "&max-results=10";//件数
            str += "&start-index="+(cnt*10+1).toString();//インデックス
            //var loader:URLLoader = new URLLoader();
            
            loader = new URLLoader();
            loader.addEventListener(Event.COMPLETE,onComplete);
            var url:URLRequest = new URLRequest(str);
            loader.load(url);
            cnt++;
        }
        
        public function getImage(id:String,num:int=1):Sprite{
            var loader:Loader;
            loader = new Loader();
            //const req:String = "http://www.ozworks.dip.jp/img/01/1426006.png";
            const str1:String = "http://i.ytimg.com/vi/";
            const str3:String = "/default.jpg";
            const str4:String = "/0.jpg";
            var req2:String;
            switch(num){
                case 0:
                    req2 = str1+id+str4;
                    break;
                case 1:
                    req2 = str1+id+"/default.jpg";
                    break;
                
            }

            
            loader.load(new URLRequest(req2));//youtubeプレイヤー読み込み
            var s:Sprite = new Sprite();
            s.addChild(loader);
            return s;
        }


        
        public var _xml:String;
        private function onComplete(e:Event):void{
            loader.removeEventListener(Event.COMPLETE,onComplete);
            var res:XML = new XML(e.target.data);
            var list:XMLList = res.children();
            //var str:String = "";
            var cnt:int=0;
            
            for(var i:int=0;i<list.length();i++){
                if(list[i].localName()!="entry")continue;
                var list3:XMLList = list[i].elements();
                for(var j:int=0;j<list3.length();j++){
                    if(list3[j].localName()=="title"){ //タイトル抽出
                        //str += list3[j].text()+"\n";
                        var title:String = new String();
                        title += list3[j].text();
                        titleList.push(title);
                    }
                    else if(list3[j].localName()=="id"){ //ID抽出
                        var str3:String = list3[j].text();
                        var n:int = str3.indexOf("video:")+6;
                        var id:String = str3.substring(n);
                        //str += id+"\n";
                        idList.push(id);
                    }
                    else if(list3[j].localName()=="author"){//投稿者名
                        var str4:String;
                        var list2:XMLList = list3[j].elements();
                        str4 = list2[0].text();
                        authorList.push(str4);
                    }
                    else if(list3[j].localName()=="media:group"){
                        
                    }
                    
                }

                //str += list3.elements("id").toXMLString()+"\n\n";
                //str += i.toString()+" "+list[i].localName()+"\n";
                //str += list[i].toXMLString()+"\n\n";
                //str += "\n";
                _xml = res.toXMLString();
            }
            
            //コンプリートイベント発行
            var event:Event = new Event(Event.COMPLETE);
            this.dispatchEvent(event);
        }
    }
//}

Forked