youtubeTest

by tepe
♥0 | Line 97 | Modified 2013-11-18 12:44:29 | 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/Ag83
 */

package {
    import flash.display.Sprite;
    import flash.events.*;
    public class FlashTest extends Sprite { 
        private var id:String = "BBAUCUYnX9M";
        private var yp:YoutubePlayer;
        public function FlashTest() {

            yp= new YoutubePlayer();
            addChild(yp);
            yp.addEventListener(MouseEvent.CLICK,onClick);
        }
        private function onClick(e:MouseEvent):void{
            if(yp.state==1)yp.seek = 100;
            else yp.play(id);
            
        }
            
    }
}


import flash.display.*;
import flash.net.*;
import flash.system.*;
import flash.events.*;
import flash.text.*;
class YoutubePlayer extends Sprite{
    
    private var WIDTH:int = 320;
    private var HEIGHT:int= 240;
    private var player:Object;
    //private var players:Array;
    private var _state:int = -1;//プレイヤー状態
    private var txt:TextField;
    public function YoutubePlayer():void{
        var loader:Loader;
            loader = new Loader();
            Security.loadPolicyFile('http://www.youtube.com/crossdomain.xml');            
            loader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
            const req:String = "http://www.youtube.com/apiplayer?enablejsapi=1&version=3";
            loader.load(new URLRequest(req));//youtubeプレイヤー読み込み
            
            txt = new TextField();
            txt.textColor = 0x00ff00;
            
    }
    
    //ローダー初期化
        private function onLoaderInit(e:Event):void{
            var loader:Loader = e.currentTarget.loader;
            loader.content.addEventListener("onReady", onPlayerReady);
            loader.content.addEventListener("onStateChange",onChangeState);
            addChild(loader);
            addChild(txt);
            
        }
        public function load(id:String):void{
            player.clearVideo();
            player.cueVideoById(id);//動画ID
        }
        
        public function play(id:String=null):void{
            if(id!=null)load(id);
            player.playVideo();//再生
        }
        
        public function pause():void{
            player.pauseVideo();
        }
        
        public function stop():void{
            player.clearVideo();
        }

        public function get seek():Number{
            return player.getDuration();
        }
        
        public function set seek(time:Number):void{
            player.seekTo(time);
        }
        
        public function get length():Number{
            return player.getDuration();
        }
        
        public function get state():int{
            return _state;
        }




        //プレイヤー設定
        private function onPlayerReady(e:Event):void{
            player = e.currentTarget;
            player.setSize(WIDTH, HEIGHT);//サイズ
        }
        
        //動画ステータス変化
        private function onChangeState(e:Event):void{            
            _state = player.getPlayerState()
            txt.appendText(_state.toString()+":");
            //動画終了
            if(state == 0){   
                txt.appendText("stop");         
            }
            else if(_state == 1){
                txt.appendText("play");
            }
            else if(_state == 2){
                txt.appendText("pause");
            }
            //バッファリング中
            else if(_state == 3){
                txt.appendText("loading.....");
            }

            else if(_state == 5){//頭出し済み  
                txt.appendText("loading.....");
            }  
            txt.appendText("\n");
            txt.scrollV = txt.maxScrollV;
        }
}//class
//}//package