popov1301  | Voilà un petit prog tout simple qui ne génére aucune erreur  mais qui ne fait pas ce que j'aimerai bien qu'il fasse  à savoir :
 Quand on clique sur une pallette de couleur, on renvoit une popup donnant la valeur hexadécimale de la couleur séléctionée.
   Etape 1: J'ai récupéré le code source de la palette flash qui renvoi la valeur hexa désirée mais DANS un objet flash : tSortie.text.
   Etape 2 : Je repére tous les onRelease du code et j'insère un appel à la fonction Javascript RecupCouleur(string )qui génére la popup via la commande alert(string) :
 ExternalInterface.call("RecupCouleur", tSortie.text);
   Merci de votre aide précieuse car ça fait bien 1 sem que je gallère dessus :
  
  Code :
 - import flash.external.*;
 - this.createEmptyMovieClip("nCouleur",6);
 - this.createEmptyMovieClip("aCouleur",7);
 - this.createEmptyMovieClip("degra3",2);
 - this.Couleur = [255, 0, 0];
 - CP_creationCarre = function () {
 - 	this.createEmptyMovieClip("MASK",0);
 - 	this.MASK.beginFill(0xFFFFFF);
 - 	this.MASK.lineTo(100,0);
 - 	this.MASK.lineTo(100,100);
 - 	this.MASK.lineTo(0,100);
 - 	this.MASK.lineTo(0,0);
 - 	this.endFill();
 - 	curseur.setMask(this.MASK);
 - 	degrade.onRollOver = function() {
 -   this.useHandCursor = false;
 - 	};
 - 	degrade.onPress = function() {
 -   Mouse.hide();
 -   curseur.startDrag(true,0,0,100,100);
 -   duplicateMovieClip(curseur, "curseur2", 10);
 -   curseur2._x = curseur._x;
 -   curseur2._y = curseur._y;
 -   curseur2._alpha /= 2;
 -   curseur._x = _xmouse;
 -   curseur._y = _ymouse;
 -   curseur.onEnterFrame = function() {
 -   	var couleur1 = CP_getCouleur1(this._x);
 -   	this._parent.Couleur = CP_melange(couleur1, [128, 128, 128], this._y);
 -   	this._parent.CP_creationRectangle();
 -   };
 - 	};
 - 	degrade.onRelease = degrade.onReleaseOutside=function () {
 -   delete curseur.onEnterFrame;
 -   Mouse.show();
 -   curseur.stopDrag();
 -   this._parent.aCouleur.clear();
 -   this._parent.aCouleur.clear();
 -   this._parent.aCouleur.moveTo(-65,30);
 -   this._parent.aCouleur.beginFill(this._parent.couleurFinal);
 -   this._parent.aCouleur.lineTo(-5,30);
 -   this._parent.aCouleur.lineTo(-5,60);
 -   this._parent.aCouleur.lineTo(-65,60);
 -   this._parent.aCouleur.lineTo(-65,30);
 -   this._parent.aCouleur.endFill();
 -   removeMovieClip("curseur2" );
 -   ExternalInterface.call("RecupCouleur", tSortie.text);
 - 	};
 - 	this.CP_creationRectangle();
 - };
 - CP_creationRectangle = function () {
 - 	this.degra3.clear();
 - 	var c = RGBtoHEXA(this.Couleur[0], this.Couleur[1], this.Couleur[2]);
 - 	this.degra3.lineStyle(1,0x000000);
 - 	this.degra3.beginGradientFill("linear",[0xFFFFFF, c, 0x000000],[100, 100, 100],[0, 0xFF/2, 0xFF],{matrixType:"box", w:15, h:100, x:0, y:0, r:Math.PI/2});
 - 	this.degra3.moveTo(105,0);
 - 	this.degra3.lineTo(123,0);
 - 	this.degra3.lineTo(123,100);
 - 	this.degra3.lineTo(105,100);
 - 	this.degra3.lineTo(105,0);
 - 	this.degra3.endFill();
 - 	this.degra3.onRollOver = function() {
 -   this.useHandCursor = false;
 - 	};
 - 	this.degra3.onPress = function() {
 -   Mouse.hide();
 -   Fleche.startDrag(true,125,0,125,100);
 -   duplicateMovieClip(Fleche, "Fleche2", 10);
 -   Fleche2._x = Fleche._x;
 -   Fleche2._y = Fleche._y;
 -   Fleche2._alpha /= 2;
 -   Fleche._y = this._ymouse;
 -   Fleche.onEnterFrame = function() {
 -   	this._parent.CP_couleurSortie();
 -   };
 - 	};
 - 	this.degra3.onRelease = this.degra3.onReleaseOutside=function () {
 -   delete Fleche.onEnterFrame;
 -   this._parent.aCouleur.clear();
 -   this._parent.aCouleur.clear();
 -   this._parent.aCouleur.moveTo(-65,30);
 -   this._parent.aCouleur.beginFill(this._parent.couleurFinal);
 -   this._parent.aCouleur.lineTo(-5,30);
 -   this._parent.aCouleur.lineTo(-5,60);
 -   this._parent.aCouleur.lineTo(-65,60);
 -   this._parent.aCouleur.lineTo(-65,30);
 -   this._parent.aCouleur.endFill();
 -   removeMovieClip("Fleche2" );
 -   Mouse.show();
 -   Fleche.stopDrag();
 -   ExternalInterface.call("RecupCouleur", tSortie.text);
 - 	};
 - 	this.CP_couleurSortie();
 - };
 - CP_couleurSortie = function () {
 - 	if (Fleche._y>50) {
 -   var blackAndWhite = [0, 0, 0];
 - 	} else {
 -   var blackAndWhite = [255, 255, 255];
 - 	}
 - 	this.cF1 = CP_melange(this.Couleur, blackAndWhite, Math.abs((Fleche._y-50)*2));
 - 	this.couleurFinal = RGBtoHEXA(cF1[0], cF1[1], cF1[2]);
 - 	this.nCouleur.clear();
 - 	this.nCouleur.moveTo(-65,0);
 - 	this.nCouleur.beginFill(this.couleurFinal);
 - 	this.nCouleur.lineTo(-5,0);
 - 	this.nCouleur.lineTo(-5,30);
 - 	this.nCouleur.lineTo(-65,30);
 - 	this.nCouleur.lineTo(-65,0);
 - 	this.nCouleur.endFill();
 - 	tSortie.text = "#"+this.getHEXA();
 - };
 - function CP_melange(f, d, p) {// f pour FOND
 - 	// d pour DESSUS
 - 	// p pour POSITION ou POURCENTAGE
 - 	var eR = d[0]-f[0];
 - 	var eG = d[1]-f[1];
 - 	var eB = d[2]-f[2];
 - 	var R = eR*p/100+f[0];
 - 	var G = eG*p/100+f[1];
 - 	var B = eB*p/100+f[2];
 - 	R = Math.round(R);
 - 	G = Math.round(G);
 - 	B = Math.round(B);
 - 	return [R, G, B];
 - }
 - function CP_getCouleur1(x) {
 - 	var a = 255;// x est donné entre 0 et 100. Il nous le faut entre 0 et 1530
 - 	x *= 1530/100;// D'abord on traite le ROUGE
 - 	if (x<a || x>=5*a) {
 -   var R = 255;
 - 	} else if (x>=a && x<2*a) {
 -   var R = 2*a-x;
 - 	} else if (x>=2*a && x<4*a) {
 -   var R = 0;
 - 	} else if (x>=4*a && x<5*a) {
 -   var R = x-4*a;
 - 	}
 - 	// Puis le VERT  
 - 	if (x<a) {
 -   var G = x;
 - 	} else if (x>=a && x<3*a) {
 -   var G = 255;
 - 	} else if (x>=3*a && x<4*a) {
 -   var G = 4*a-x;
 - 	} else if (x>=4*a) {
 -   var G = 0;
 - 	}
 - 	// Et enfin le BLEU  
 - 	if (x<2*a) {
 -   var B = 0;
 - 	} else if (x>=2*a && x<3*a) {
 -   var B = x-2*a;
 - 	} else if (x>=3*a && x<5*a) {
 -   var B = 255;
 - 	} else if (x>=5*a) {
 -   var B = 6*a-x;
 - 	}
 - 	// On arrondit tout ça, valeure ENTIERE uniquement pour le RGB  
 - 	R = Math.round(R);
 - 	G = Math.round(G);
 - 	B = Math.round(B);// On retourne la valeure Hexa (sans le 0x ou le # devant)
 - 	return [R, G, B];
 - }
 - function HEXAtoRGB(HEXA) {
 - 	var caractere = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
 - 	HEXA = HEXA.split("" );
 - 	for (var i = 0; i<HEXA.length; i++) {
 -   for (var j = 0; j<caractere.length; j++) {
 -   	if (HEXA[i] == caractere[j]) {
 -     HEXA[i] = j;// En gros, si on a F, tu mets 15 à la place, et ainsi de suite...
 -     break;// Stop la seconde boucle "for" !
 -   	}
 -   }
 - 	}
 - 	var R = HEXA[0]*16+HEXA[1];
 - 	var G = HEXA[2]*16+HEXA[3];
 - 	var B = HEXA[4]*16+HEXA[5];
 - 	return {R:R, G:G, B:B};
 - }
 - function RGBtoHEXA(R, G, B) {
 - 	return (R*Math.pow(16, 4)+G*Math.pow(16, 2)+B);
 - }
 - getHEXA = function () {
 - 	var caractere = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
 - 	var R1 = caractere[Math.floor(cF1[0]/16)];
 - 	var R2 = caractere[cF1[0]%16];
 - 	var G1 = caractere[Math.floor(cF1[1]/16)];
 - 	var G2 = caractere[cF1[1]%16];
 - 	var B1 = caractere[Math.floor(cF1[2]/16)];
 - 	var B2 = caractere[cF1[2]%16];
 - 	return (R1+R2+G1+G2+B1+B2);
 - };
 - this.CP_creationCarre();
 
  |  
 
   Voici le code de la page HTML qui essaye de faire un alert en donnant la valeur hexa de la couleur cliquée ...
  
  Code :
 - <script language="javascript">
 - function RecupCouleur(couleur) {alert(couleur);}
 - </script>
 - <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
 - </head>
 - <body>
 - <script type="text/javascript">
 - AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','195','height','106','src','COLORPICKER/ColorpickerMX','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','COLORPICKER/ColorpickerMX' ); //end AC code
 - </script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="195" height="106">
 -   <param name="movie" value="COLORPICKER/ColorpickerMX.swf" />
 -   <param name="quality" value="high" />
 -   <embed src="COLORPICKER/ColorpickerMX.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="195" height="106"></embed>
 - </object></noscript>
 - </body>
 - </html>
 
  |  
    |