rendered paste body/**
* 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;
}
}