com.neolao.movieclip.DoubleClick

Ajout de l'événement onDoubleClick sur un Button ou un MovieClip.

Exemple

DoubleClick.addEvent(mon_bouton);
mon_bouton.onDoubleClick = function(){
	trace("coucou");
};

Propriétés

Visibilité Type Nom Status Description
static public Number interval Lecture et écriture Le délai entre 2 click pour valider un double click

Méthodes

Visibilité Return Nom Param 1 Description
static public Boolean addEvent pInstance:Object Ajoute l'événement onDoubleClick à l'objet ciblé
static public Boolean removeEvent pInstance:Object Supprime l'événement onDoubleClick à l'objet ciblé

Change log

[05/08/2004]

Ajout de l'événement onDoubleClick sur un Button ou un MovieClip

[13/09/2004] Version 1.2

Ajout d'une nouvelle condition a la reconnaissance de double click. La souris ne doit pas bouger

[08/10/2004] Version 1.3

Modification de la reconnaissance du double click. Le double click se fait sur le second onPress

[18/08/2005]

Un ptit check up !

Source

/**
 * Ajout de l'événement onDoubleClick sur un Button ou un MovieClip
 * @author 		neolao <neo@neolao.com>
 * @version 		1.3 (18/08/2005)
 * @link		http://resources.neolao.com/flash/classes/movieclip/DoubleClick
 * @license		http://creativecommons.org/licenses/by-sa/2.0/
 */
class com.neolao.movieclip.DoubleClick {
	public static var className:String = "DoubleClick";
	public static var version:String = "1.3";
 
	// ----------------------------- VARIABLES ---------------------------------
	/**
	 * Le délai entre 2 click pour valider un double click
	 */
	public static var interval:Number = 300;
 
	// ----------------------------- EVENEMENTS --------------------------------
 
	/*========================== METHODES PUBLIQUES ==========================*/
	/*========================================================================*/
	/**
	 * Ajoute l'événement onDoubleClick à l'objet ciblé
	 * @param pInstance Instance de MovieClip ou Button sur la scène
	 * @return true s'il a réussi, sinon false
	 */
	public static function addEvent(pInstance:Object):Boolean{
		if(!pInstance.__oldRelease){
			// création des différents objets s'ils n'existent pas
			pInstance.__oldRelease = pInstance.onRelease;
			pInstance.__oldPress = pInstance.onPress;
			pInstance.__classDoubleClick = new Object();
			pInstance.__classDoubleClick.double = false;
			pInstance.__classDoubleClick.xmouse = _level0._xmouse;
			pInstance.__classDoubleClick.ymouse = _level0._ymouse;
		}
		// Remplacement du onPress
		pInstance.onPress = function(){			
			this.__oldPress();
 
			if(this.__classDoubleClick.double && this.__classDoubleClick.xmouse == _level0._xmouse && this.__classDoubleClick.ymouse == _level0._ymouse){
				// C'est un double click
				this.onDoubleClick();
			}
 
			clearInterval(this.__classDoubleClick.intervalID);
			this.__classDoubleClick.intervalID = setInterval(this, "onDoubleClickDeclenche", DoubleClick.interval, this.__classDoubleClick.double);
 
			// Le prochain click est double
			this.__classDoubleClick.double = true;
		};
 
		// Remplacement du onRelease
		pInstance.onRelease = function(){
			this.__oldRelease();
		 	this.__classDoubleClick.xmouse = _level0._xmouse;
			this.__classDoubleClick.ymouse = _level0._ymouse;
		};
 
		pInstance.onDoubleClickDeclenche = function(pDouble){
			// Le délai est écoulé
			if(!pDouble && this.__classDoubleClick.xmouse == _level0._xmouse && this.__classDoubleClick.ymouse == _level0._ymouse){
				// Le click est simple
				//this.__oldPress();
			}
			this.__classDoubleClick.double = false;
			clearInterval(this.__classDoubleClick.intervalID);
		};
		return true;
	}
 
 
	/**
	 * Supprime l'événement onDoubleClick à l'objet ciblé
	 * @param pInstance Instance de MovieClip ou Button sur la scène
	 * @return true s'il a réussi, sinon false
	 */
	public static function removeEvent(pInstance:Object):Boolean{
		if(pInstance.__oldRelease){
			pInstance.onRelease = pInstance.__oldRelease;
			pInstance.onPress = pInstance.__oldPress;
 
			delete pInstance.__oldRelease;
			delete pInstance.__oldPress;
			delete pInstance.__classDoubleClick;
			delete pInstance.onDoubleClickDeclenche;
			delete pInstance.onDoubleClick;
			return true;
		}else{
			return false;
		}
	}
	/*==================== FIN = METHODES PUBLIQUES = FIN ====================*/
	/*========================================================================*/
}