Forked from: wonderfl_external_me..'s Video_step2 動画情報取得とちょっとコントロール diff:109 Video_step3 動画を使った演出の一例 wonderfl_ext.. forked:3favorite:10lines:68license : All rights reserved modified : 2009-09-23 06:01:26 Embed Tweet // forked from hacker_fuxxpyai's Video_step2 動画情報取得とちょっとコントロール // forked from hacker_fuxxpyai's Video_step1 とりあえず再生 package { import flash.display.BitmapData; import flash.display.Sprite; import flash.events.Event; import flash.events.NetStatusEvent; import flash.geom.Matrix; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.utils.getTimer; import flash.system.Security; public class Main extends Sprite { private var _connection:NetConnection; private var _stream:NetStream; private var _video:Video = new Video; private var _canvas:BitmapData; private var _matrixArray:Array = []; private const SPLIT_NUM:int = 8; private var _videoURL:String = "http://www.muraken.biz/wonderfl/construction.mp4"; public function Main():void { Security.loadPolicyFile("http://www.muraken.biz/crossdomain.xml"); _connection = new NetConnection(); _connection.addEventListener(NetStatusEvent.NET_STATUS, _netStatusHandler); _connection.connect(null); } private function _netStatusHandler(e:NetStatusEvent):void { if(e.info.code=="NetConnection.Connect.Success")_connectStream(); else if(e.info.code=="NetStream.Play.Stop")_stream.seek(0); } private function _connectStream():void { _stream = new NetStream(_connection); _stream.addEventListener(NetStatusEvent.NET_STATUS, _netStatusHandler); _stream.client = this; _stream.bufferTime = 3; _video.attachNetStream(_stream); _stream.play(_videoURL); addEventListener(Event.ENTER_FRAME, _onEnterFrame); } private function _onEnterFrame(e:Event):void { if (!_canvas) return; _canvas.fillRect(_canvas.rect, 0x00000000); _canvas.draw(_video); var _mtx:Matrix = _matrixArray[Math.floor((getTimer() / 1000) % SPLIT_NUM)]; _mtx.ty-=1; _mtx.ty%=stage.stageHeight; graphics.clear(); graphics.beginBitmapFill(_canvas,_mtx,true,true); graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); graphics.endFill(); } //callback public function onMetaData(info:Object):void { if (!_canvas) { _canvas = new BitmapData(info.width, info.height, true, 0x00000000); var _scale:Number; for (var i:int = 0; i < SPLIT_NUM; i++) { _scale = stage.stageWidth / (_canvas.width * (i + 1)); _matrixArray.push(new Matrix(_scale, 0, 0, _scale)); } } } public function onCuePoint(info:Object):void { } public function onXMPData(info:Object):void{} } } Code Fullscreen Preview Fullscreen s1623 sabotenbroth.. djankey makishima sadamitsu ep91ckok eternity_hir.. teageek sr_forest : video a440hlz : video video info NetStatusEvent.NET_STATUS NetStream bufferTime seek Video NetStatusEvent.ENTER_FRAME client NetStatusEvent attachNetStream play clear Object ty Matrix height width Math.floor addEventListener push sort new page view favorite forked pv381 forked from: Video_step3 動画を使っ.. sadamitsu forked:0 favorite:2lines:153 (diff:102) pv274 forked from: Video_step3 動画を使っ.. vexwex forked:0 favorite:0lines:73 (diff:46) pv114 forked from: Video_step3 動画を使っ.. vexwex forked:0 favorite:0lines:67 (diff:10) pv156 forked from: Video_step3 動画を使っ.. vexwex forked:1 favorite:0lines:68 (diff:1) pv0 forked from: Video_step3 動画を使っ.. motioneditor forked:0 favorite:0lines:68 (diff:1)