メニューバー

HOME HELP 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク ファイル一覧 検索 過去ログ

ツリー一括表示

Nomal ワイド動画編2:AS3:XMLを読み込んで表示するプレーヤー /mitt (09/12/27(Sun) 04:23) [ID:vS2O7xY5] #318
Nomal videoPlay.as /mitt (09/12/27(Sun) 04:25) [ID:vS2O7xY5] #319


親記事 / ▼[ 319 ]
■318 / 親階層)  ワイド動画編2:AS3:XMLを読み込んで表示するプレーヤー
□投稿者/ mitt クラウンプライズ(66回)-(2009/12/27(Sun) 04:23:24) [ID:vS2O7xY5]
http://mitt3210.com
    スクリプトがあまりにも長いので、for (var n:uint=1; n<=videoNum; n++)
    を使って、指定の画像を勝手に5個プレイリストにするのを作ってみた。

    本当は、XMLに記載された動画を5個、と規定せず、多ければスクロールバーが出現してアイコンを格納する物が作りたいんだけど、今回はここまで。

    読み込むvideoPlay.xmlファイルは前回のものを再利用。→No315,
    (開いたらソースを見て下さい)
    http://mitt3210.s39.coreserver.jp/UP/16-9/videoPlay.xml

    動画は支障のないものに変えてあります。コメントと咬み合いませんが、お気になさらず。

    完成品は、こちら↓
    http://mitt3210.s39.coreserver.jp/UP/16-9/videoPlay.html

    表示に必要なファイル
    フォルダ構造は、キャッシュを見ればわかると思うので、割合。

    videoPlay.xml           //XMLファイル
    SkinUnderAllNoCaption.swf     //プレーヤースキン
    videoPlay.swf           //今回作ったプレーヤー
    1/0101.flv            //動画
    2/0202.flv
    3/0302.flv
    4/0402.flv
    5/0502.flv

    ポイント
    ・テキスト文字の 改行は"\n"、タブは"\t"、下記スクリプトは、"\n"と"\t "に書き換えられてしまったので注意。
    ・テキスト文字の "▲"が、下記スクリプトは、"&#9654;"に書き換えられてしまったので注意。
    ・flv動画の大きさは640×380ピクセル。16:9です。
    ・ライブラリーにFLVPlaybackを格納しておく。
    ・下記のスクリプトを、videoPlay.asという名前で保存。
    ・プロパティータグの「ドキュメントクラス」のところに、videoPlayと記述し、ASファイルを読み込む。
[ □ Tree ] 返信 削除キー/

▲[ 318 ] / 返信無し
■319 / 1階層)  videoPlay.as
□投稿者/ mitt クラウンプライズ(67回)-(2009/12/27(Sun) 04:25:06) [ID:vS2O7xY5]
http://mitt3210.com
    package {
    import fl.video.*;
    import flash.events.*;
    import flash.text.*;
    import flash.display.MovieClip;
    import flash.net.*;
    import flash.display.Sprite;

    public class videoPlay extends Sprite {
    private var myLoader:URLLoader;
    private var videoNum:Number;
    private var video:Array = [];
    private var videoTitle:Array = [];
    private var videoContent:Array = [];
    private var videoTheme:Array = [];
    private var player = new FLVPlayback();
    private var videoPath:String;
    private var n:Number;
    private var infoBox = new TextField();
    private var myXML:XML;

    public function videoPlay() {
    var infoBox:TextField = new TextField();
    with(infoBox) {x = 10;y = 20;width = 630;height = 30;}var info:TextFormat = new TextFormat();info.font = "_明朝";info.bold = true;info.color = 0xFFFFFF;info.size = 16; infoBox.defaultTextFormat = info;
    addChild(infoBox);

    var myXML:XML = new XML();
    var XML_URL:String = "videoPlay.xml";
    var myXMLURL:URLRequest = new URLRequest(XML_URL);
    var myLoader:URLLoader = new URLLoader(myXMLURL);
    myLoader.addEventListener("complete", xmlLoaded);
    function xmlLoaded(event:Event):void{
    myXML = XML(myLoader.data);
    var total:String = myXML.total.toString();
    var pskin:String = myXML.pskin.toString();
    var pskinCol:String = myXML.pskinCol.toString();
    var txtCol:String = myXML.txtCol.toString();
    var element:XML;
    for each (element in myXML..item){
    var flv:String = element.flv.toString();
    var videoTitle:String = element.videoTitle.toString();
    var videoContent:String = element.videoContent.toString();
    var videoTheme:String = element.videoTheme.toString();

    player.skin = myXML.pskin.toString();
    player.skinBackgroundColor = myXML.pskinCol.toString();
    player.x = 0;
    player.y = 50;
    player.width = 640;
    player.height = 380;
    player.volume = 0.8;
    player.autoPlay = true;
    player.bufferTime = 0;
    n = 1;
    player.source = myXML.channel.item.flv[n-1].toString();
    videoNum = myXML.total.toString();
    addChild(player);
    player.play();
    infoBox.text = "&#9654; "+myXML.channel.item.videoTitle[n-1]+"\t"+myXML.channel.item.videoContent[n-1]+"\t"+myXML.channel.item.videoTheme[n-1].toString();

    for (var n:uint=1; n<=videoNum; n++) {
    var thmb_mc:MovieClip = new MovieClip();
    addChild(thmb_mc);
    var flvP:FLVPlayback = new FLVPlayback();
    flvP.skin = null;
    flvP.source = myXML.channel.item.flv[n-1].toString();
    flvP.autoPlay = false;
    flvP.playheadTime = 0.3;
    flvP.fullScreenTakeOver = false;
    with(flvP) {x = 0;y = 10;scaleX = scaleY = 0.4;}
    thmb_mc.name = "thumb"+n;
    thmb_mc.addChild(flvP);
    var alt:TextField = new TextField();
    with(alt) {x = 0;y = 0;width = 140;height = 45;wordWrap = true;}
    var format:TextFormat = new TextFormat();format.color = myXML.txtCol.toString();format.size = 9; alt.defaultTextFormat = format;
    alt.text = "◆"+myXML.channel.item.videoTitle[n-1]+"\n"+myXML.channel.item.videoContent[n-1]+"\n"+myXML.channel.item.videoTheme[n-1].toString();
    flvP.addChild(alt);
    with(thmb_mc) {x = 650;y = 0+90*(n-1);alpha = 0.2;}
    thmb_mc.num = n;
    thmb_mc.buttonMode = true;
    thmb_mc.addEventListener(MouseEvent.ROLL_OVER, rollover);
    thmb_mc.addEventListener(MouseEvent.ROLL_OUT, rollout);
    thmb_mc.addEventListener(MouseEvent.CLICK, playStart);
    }
    function rollover(event:MouseEvent):void {event.target.alpha = 1.0;}
    function rollout(event:MouseEvent):void {event.target.alpha = 0.2;}
    function playStart(event:MouseEvent):void {
    infoBox.text = "&#9654; "+myXML.channel.item.videoTitle[event.target.parent.num-1]+"\t"+myXML.channel.item.videoContent[event.target.parent.num-1]+"\t"+myXML.channel.item.videoTheme[event.target.parent.num-1].toString();
    player.source = myXML.channel.item.flv[event.target.parent.num-1].toString();
    player.play();}

    }
    }
    function videoChange(event:VideoEvent) {
    if (n<=videoNum) {
    n++;
    player.source = myXML.channel.item.flv[n].toString();
    player.play();
    infoBox.text = "&#9654; "+myXML.channel.item.videoTitle[n]+"\t"+myXML.channel.item.videoContent[n]+"\t"+myXML.channel.item.videoTheme[n].toString();
    } else {
    n=1;
    player.source = myXML.channel.item.flv[n].toString();
    player.play();
    infoBox.text = "&#9654; "+myXML.channel.item.videoTitle[n]+"\t"+myXML.channel.item.videoContent[n]+"\t"+myXML.channel.item.videoTheme[n].toString();
    }
    }
    player.addEventListener(VideoEvent.COMPLETE, videoChange);
    }
    }
    }
[ 親 318 / □ Tree ] 返信 削除キー/


Mode/  Pass/

HOME HELP 新着記事 ツリー表示 スレッド表示 トピック表示 発言ランク ファイル一覧 検索 過去ログ

- Child Tree -