Forked from: northprint's Progression Command Test diff:44 forked from: Progression Command Test Progression 俺俺コマンド Test northprint forked:1favorite:0lines:91license : All rights reserved modified : 2008-12-19 10:40:20 Embed Tweet // forked from northprint's Progression Command Test // write as3 code here.. // Progression 俺俺コマンド Test package { import flash.display.*; import flash.events.Event import jp.progression.commands.*; public class Prog_test2 extends MovieClip{ private var _sprite:Sprite; public function Prog_test2(){ _sprite = new Sprite(); _sprite.x=stage.stageWidth/2; _sprite.y=stage.stageHeight/2; addChild(_sprite); addEventListener(Event.ENTER_FRAME, enterframeHandler); var sList:SerialList = new SerialList(); sList.addCommand( new PlayMovie(_sprite, "http://narayama.heteml.jp/movie/P1020474.flv", 400, 300) ); sList.execute(); } private function enterframeHandler(e:Event):void{ _sprite.rotationX +=2; _sprite.rotationY +=2; _sprite.rotationZ +=2; } } } import jp.progression.commands.*; import jp.progression.core.commands.Command; import flash.display.DisplayObjectContainer; import flash.events.NetStatusEvent; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; class PlayMovie extends Command{ private var _movieURL:String; private var _movieWidth:uint; private var _movieHeight:uint; private var _connection:NetConnection; private var _netStream:NetStream; private var _obj:Object; private var _movieObj:Video; private var _movieContainer:DisplayObjectContainer; public function PlayMovie(container:DisplayObjectContainer = null, movieURL:String = null, movieWidth:int = 0, movieHeight:int = 0, initObject:Object = null ){ _movieURL = movieURL; _movieWidth = movieWidth; _movieHeight = movieHeight; _movieContainer = container; super( _execute, _interrupt, initObject ); } //MOVIEの状態 private function onMovieProgress (event : NetStatusEvent):void { if (event.info.code == "NetStream.Play.Stop"){ //ループ再生 _netStream.play(_movieURL); //endExec(); } } //イニシャライズ処理 private function initStream():void { _netStream = new NetStream(_connection); _movieObj = new Video(); var customClient:Object = new Object(); _netStream.client = customClient; //指定されたコンテナの表示リストに追加 _movieContainer.addChild(_movieObj); //幅、高さ設定 _movieObj.width = _movieWidth; _movieObj.height = _movieHeight; _movieObj.x = (_movieWidth / 2) * -1; _movieObj.y = (_movieHeight/ 2) * -1; _movieObj.attachNetStream(_netStream); //再生 _netStream.play(_movieURL); _netStream.addEventListener(NetStatusEvent.NET_STATUS, onMovieProgress); executeComplete(); } //終了処理 private function endExec():void { if (_movieObj) { _movieContainer.removeChild(_movieObj); _movieObj = null; _netStream.close(); _netStream = null; _connection = null; } } private function _execute():void{ //長いムービーだとタイムアウトになるから timeOut = 0; //初期処理 _connection = new NetConnection(); _connection.connect(null); initStream(); } private function _interrupt():void{ endExec(); // 中断処理を終了します interruptComplete(); } public override function clone():Command{ return new PlayMovie( _movieContainer,_movieURL,_movieWidth,_movieHeight,this ); } } Code Fullscreen Preview Fullscreen play SerialList NetStatusEvent.ENTER_FRAME width close clone attachNetStream height client addEventListener timeOut NetStream NetStatusEvent.NET_STATUS addCommand interruptComplete executeComplete Command removeChild Video Object sort new page view favorite forked pv0 forked from: forked from: Prog.. Nao forked:0 favorite:0lines:91 (diff:1)