All pastes #985800 Raw Edit

play not launch onRelease's meth

public text v1 · immutable
·published 2008-04-15 09:47 UTC
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;
	}
}