package { import flash.display.MovieClip; import flash.net.NetStream; public class VideoAdapter extends MovieClip { private var _currentFrame : int = 1; private var _totalFrames : Number; private var videoStream : NetStream; private var framerate : int; private var duration : Number; public function VideoAdapter( videoStream : NetStream, metaData : Object ) { this.videoStream = videoStream; framerate = metaData.framerate; duration = metaData.duration; _totalFrames = framerate * duration; } override public function stop() : void { videoStream.pause(); } override public function gotoAndStop( frame : Object, scene : String = null ) : void { var targetFrame : int = int( frame ); var zeroBasedFrame : int = targetFrame - 1; videoStream.seek( Math.floor( zeroBasedFrame / framerate ) + ( zeroBasedFrame % framerate ) / framerate ); _currentFrame = targetFrame; } override public function get currentFrame():int { return _currentFrame; } override public function get totalFrames() : int { return _totalFrames; } } }