/** * Controlleur personnalisé d'affichage de Video * simple avec boutton play/pause. * @author Antoine Malpel */ import mx.events.EventDispatcher; import mx.transitions.easing.*; import mx.transitions.Tween; import mx.utils.Delegate; class VideoViewer { public var playButton:MovieClip; public var pauseButton:MovieClip; private var _view:Object; private var _video:Object; private var _data:Object; private var _tweenPauseButton:Tween; private var _tweenPlayButton:Tween; private function dispatchEvent() {}; public function addEventListener() {}; public function removeEventListener() {}; public function VideoViewer(viewArg:MovieClip) { _view = viewArg; _video = viewArg.video; playButton = viewArg.playButton; pauseButton = viewArg.pauseButton; playButton._visible = false; pauseButton._visible = false; playButton._alpha = 0; pauseButton._alpha = 0; playButton.onRelease = Delegate.create(this, play); pauseButton.onRelease = Delegate.create(this, pause); var timeToFade:Number = 500; var r:Object = this; _view.onRollOver = Delegate.create(this, onRollOver); _view.onRollOut = Delegate.create(this, onRollOut); _view.onRelease = Delegate.create(this, onRelease); _view.useHandCursor = false; _view.addEventListener("complete", this); _view.addEventListener("ready", this); EventDispatcher.initialize(this); } public function play():Void { trace("play video"); _video.play(); playButton._visible = false; pauseButton._visible = true; } public function stop():Void { trace("stop video"); _video.stop(); playButton._visible = true; pauseButton._visible = false; } public function pause():Void { trace("pause video"); _video.pause(); playButton._visible = true; pauseButton._visible = false; } private function onRollOver():Void { _tweenPauseButton = new Tween(pauseButton, "_alpha", Regular.easeInOut, 0, 100, 0.25, true); _tweenPlayButton = new Tween(playButton, "_alpha", Regular.easeInOut, 0, 100, 0.25, true); } private function onRollOut():Void { _tweenPauseButton = new Tween(pauseButton, "_alpha", Regular.easeInOut, 100, 0, 0.25, true); _tweenPlayButton = new Tween(playButton, "_alpha", Regular.easeInOut, 100, 0, 0.25, true); } private function onRelease():Void { if (playButton.hitTest(_root._xmouse, _root._ymouse) == false && pauseButton.hitTest(_root._xmouse,_root._ymouse) == false) { dispatchEvent({type: "itemClick", target: this}); } else { trace("click on controls button when playing ?" + playing); if (playing == true) { pause(); } else { trace("so I play.."); play(); } } } private function complete(event:Object):Void { dispatchEvent(event); } private function ready(event:Object):Void { trace("video ready"); dispatchEvent(event); } /*** ACCESSORS ***/ public function get playing():Boolean { return _video.playing; } public function set contentPath(pathArg:String):Void { _video.contentPath = pathArg; } public function get visible():Boolean { return _video.visible; } public function set visible(visibility:Boolean):Void { _video.visible = visibility; } public function set volume(value:Number):Void { _video.volume = value; } public function get data():Object { return _data; } public function set data(obj:Object):Void { _data = obj; } }