// =============================================================================
// :: JAVASCRIPT TO FLASH :: 
// Auteur : aFaD, postmaster@asidefromaday.com
// Rfrence : http://zoneflashmx.free.fr/zone_flashmx_intro_javascript_vers_flash964.html
// =============================================================================


// =============================================================================
// Pour dialoguer avec le swf, il faut l'identifier dans la page HTML par son id (identifiant) :
// <object id="monFlash" name ="monFlash" >
// <embed name="monFlash" swLiveConnect="true" id="monFlash">
// </embed>
//</object>
//Pour la balise EMBED, c'est l'attribut name qui va identifier le swf; pour la balise OBJECT, c'est l'attribut id.
//Pour Netscape et Mozilla qui utilisent la balise EMBED il faut que l'attribut swLiveConnect soit  true.
// Il semblerait que pour certain Netscape notamment les version 6, l'id est indispensable sur la balise EMBED.

// Creation de l'objet flashID
var flashID = function(id) {
this.id = id
// Log d'erreur en cas de mauvaise utilisation des paramtres
var log_erreur = new Array("Erreur","Paramtre faux ou manquant");
// =============================================================================


// =============================================================================
//Macromdia spcifie que le dialogue peut se faire pour les navigateurs cits ci-dessous:
//Netscape Navigator 3.0 - 4.7x, et Netscape 6.2 ou version plus rcente. 
//Pour les systmes Windows 95/98/NT/2000/XP ou MacOS qui doit avoir le LiveConnect et Java-enabled (java actif).
//Internet Explorer 3.0 ou version plus rcente. Pour les systmes windows 95/98/NT/2000/XP seulement si ActiveX est actif. 
//Mozilla et Firefox  partir de la version 7.0.19 du plugin flash (gestion du swLiveConnect implante)

// localisation de l'objet flashID en fonction du navigateur
if (!document.getElementById && document.all) {
	// IE 4+
	var monswf = document.all[id];
} else {
	// Les autres navig
	monswf = document.getElementById(id);
}
// =============================================================================


// =============================================================================

// Cette mthode javascript va vous permettre de jouer l'animation.
this.play = function play() {
	monswf.Play();
}
// Cette mthode javascript va vous permettre de stopper l'animation.
this.stop = function StopPlay() {
	monswf.StopPlay();
}
//Cette mthode javascript va vous permettre d'aller  une image prcise de l'animation swf.
// Nombre, entier compris entre 0 et totalframes.
this.gotoAndStop = function gotoAndStop(frame) {
	if(!frame){window.alert(log_erreur[1]); return;}
	monswf.GotoFrame(frame);
}
// Cette mthode javascript va vous permettre de savoir si l'animation est stoppe ou pas.  Renvoi True ou False.
this.isPlaying = function isPlaying() {
	return monswf.IsPlaying();
}	
// Cette mthode javascript va vous permettre de retourner  la premire image de votre animation swf.	
this.rewind = function rewind() {
	monswf.Rewind();
}
// Cette mthode javascript va vous permettre de connatre une variable de votre animation swf ou d'un clip de votre animation. 
// Exemple : monswf.getVariable('_root.var1'); En considerant que var1 a bien t cre dans l'animation.
this.getVariable = function getVariable(valeur) {
	if(!valeur){window.alert(log_erreur[1]); return;}
	return monswf.GetVariable(valeur);
}
// Cette mthode javascript va vous permettre de transmettre une variable  votre animation swf ou  un clip de votre animation.
this.setVariable = function SetVariable(nom,valeur) {
	if(!nom||valeur==null){window.alert(log_erreur[1]); return;}
	monswf.SetVariable(nom,valeur);
}
// Cette mthode javascript va vous permettre de charger un swf dans un niveau n  (_leveln) de votre animation. 
// Exemple : anim1.LoadMovieNum('anim1.swf',0);
this.loadMovieNum = function loadMovieNum(swf,niveau) {
	if(!swf||niveau==null){window.alert(log_erreur[1]); return;}
		monswf.LoadMovie(niveau, swf);
}

// Cette mthode javascript va vous permettre de connatre le pourcentage de chargement du swf.
this.getBytesLoaded = function getBytesLoaded() {
	return monswf.PercentLoaded();
}
//Cette mthode javascript va vous permettre de zoomer horizontalement et verticalement votre animation swf.
//x, entier entre 0 et 00+ (100 tant la taille normale).
//y, entier entre 0 et 00+ (100 tant la taille normale).
//unite, spcifie l'unit utilise. 1 pour des pixels, 0 pour des pourcents.
this.pan = function pan(x,y,unite) {
	if(x==null||y==null||unite==null){window.alert(log_erreur[1]); return;}
	monswf.Pan(x,y,unite);
}
// Cette mthode javascript va vous permettre de zoomer une zone prcise votre animation swf.
// x1, y1; coordonns du point haut gauche de la zone  zoomer.
// x2; y2; coordonns du point bas droit de la zone  zoomer.
this.zoomRect = function SetZoomRect(x1,y1,x2,y2) {
	if(x1==null||y1==null||x2==null||y2==null){window.alert(log_erreur[1]); return;}
		monswf.SetZoomRect(x1*20,y1*20,x2*20,y2*20);
}

// Cette mthode javascript va vous permettre de zoomer votre animation swf.
// nombre, entier entre 0 et 00+ (100 tant la taille normale). Unit en pourcentage.
this.zoom = function Zoom(nombre) {
	if(nombre==null){window.alert(log_erreur[1]); return;}
	monswf.Zoom(nombre);
}
// Cette mthode javascript va vous permettre de connatre le numro de l'image o se trouve la tte de lecture 
// dans votre animation swf ou dans un clip de votre animation. 	
this.currentFrame = function currentFrame(Clip) {
	if(!Clip){window.alert(log_erreur[1]); return;}
	return monswf.TCurrentFrame(Clip)+1;
}
// Cette mthode javascript va vous permettre de connatre le label de l'image o se trouve la tte de lecture 
// dans votre animation swf ou dans un clip de votre animation. 
this.currentLabel = function currentLabel(Clip) {
	if(!Clip){window.alert(log_erreur[1]); return;}
	return monswf.TCurrentLabel(Clip);
}
// Cette mthode javascript va vous permettre d'aller  une image prcise votre animation swf ou dans un clip de votre animation. 
// Exemple : anim1.ClipgotoAndStop('_root.clip1',4); va  l'image 4 du movieclip "clip1" de l'animation.
this.clipgotoAndStop = function clipgotoAndStop(Clip,frame) {
	if(!Clip||!frame){window.alert(log_erreur[1]); return;}
	monswf.TGotoFrame(Clip,frame-1);
}

// Cette mthode javascript va vous permettre d'aller  une tiquette d'image prcise votre animation swf ou dans un clip de votre animation. 
// Exemple : anim1.CliplabelgotoAndStop('_root.clip1','label1'); va  l'image "label1" du movieclip "clip1" de l'animation.
this.clipLabelgotoAndStop = function clipLabelgotoAndStop(Clip,label) {
	if(!Clip||!label){window.alert(log_erreur[1]); return;}
	monswf.TGotoLabel(Clip,label);
}
// Cette mthode javascript va vous permettre de jouer votre animation swf ou un clip de votre animation. 
// Exemple : anim1.Clipplay('_root.clip1');
this.clipPlay = function clipPlay(Clip) {
	if(!Clip){window.alert(log_erreur[1]); return;}
	monswf.TPlay(Clip);
}
// Cette mthode javascript va vous permettre de stopper votre animation swf ou un clip de votre animation. 
// Exemple : anim1.Clipstop('_root.clip1');
this.clipStop =	function clipStop(Clip) {
		if(!Clip){window.alert(log_erreur[1]); return;}
		monswf.TStopPlay(Clip);
}

// =============================================================================
// Declaration des proprits flash pour les fonctions javascript TGetProperty() et TSetProperty()
// Rfrence : http://zoneflashmx.free.fr/zone_flashmx_proprietes_flash972.html

var proprietes = new Array("_x","_y","_xscale","_yscale","_currentframe","_totalframes","_alpha","_visibility","_width","_height","_rotation","_target","_framesloaded","_name","_droptarget","_url","_highquality","_focusrect","_soundbuftime");
var i;

//Cette mthode javascript va vous permettre de connatre une proprit de flash de votre animation swf ou d'un clip de votre animation. 
// Exemple : anim1.ClipGetProperty('_root.clip1','_x'); reverra la largeur du clip "clip1" de l'animation.
this.clipGetProperty = function clipGetProperty(Clip,valeur) {
		if(!Clip||!valeur){window.alert(log_erreur[1]); return;}
		for(i=0; i<proprietes.length; i++) {
			if(valeur==proprietes[i]) {
				def = i;
				break;
			}
			else {
				def = log_erreur[0];
			}
		}
		if(def!=log_erreur[0]) {
			return monswf.TGetProperty(Clip,def);
		}
		else {
			return log_erreur[1];
		}
	}
// Cette mthode javascript va vous permettre de modifier une proprit de flash de votre animation swf ou d'un clip de votre animation. 
// Exemple : anim1.ClipSetProperty('_root.clip1','_alpha',50); reverra au clip "clip1" un _alpha de 50%.
this.clipSetProperty = function clipSetProperty(Clip,prop,valeur) {
	if(!Clip||!prop||valeur==null){window.alert(log_erreur[1]); return;}
	for(i=0; i<proprietes.length; i++) {
		if(prop==proprietes[i]) {
			def = i;
			break;
		} else {
			def = log_erreur[0];
		}
	}
	if(def!=log_erreur[0]) {
		monswf.TSetProperty(Clip,def,valeur);
	} else {
			window.alert(log_erreur[1]);
	}
}

// Cette mthode javascript va vous permettre de connatre le nombre d'images qui composes votre animation.
this.totalFrames = function totalFrames() { 
	return clipGetProperty('_root','_totalframes');
}

// =============================================================================
// =============================================================================
// =============================================================================
// =============================================================================
}