Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2036 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Flash vers Javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Flash vers Javascript

n°1623403
popov1301
Posté le 14-10-2007 à 06:41:22  profilanswer
 

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 :
  1. import flash.external.*;
  2. this.createEmptyMovieClip("nCouleur",6);
  3. this.createEmptyMovieClip("aCouleur",7);
  4. this.createEmptyMovieClip("degra3",2);
  5. this.Couleur = [255, 0, 0];
  6. CP_creationCarre = function () {
  7. this.createEmptyMovieClip("MASK",0);
  8. this.MASK.beginFill(0xFFFFFF);
  9. this.MASK.lineTo(100,0);
  10. this.MASK.lineTo(100,100);
  11. this.MASK.lineTo(0,100);
  12. this.MASK.lineTo(0,0);
  13. this.endFill();
  14. curseur.setMask(this.MASK);
  15. degrade.onRollOver = function() {
  16.  this.useHandCursor = false;
  17. };
  18. degrade.onPress = function() {
  19.  Mouse.hide();
  20.  curseur.startDrag(true,0,0,100,100);
  21.  duplicateMovieClip(curseur, "curseur2", 10);
  22.  curseur2._x = curseur._x;
  23.  curseur2._y = curseur._y;
  24.  curseur2._alpha /= 2;
  25.  curseur._x = _xmouse;
  26.  curseur._y = _ymouse;
  27.  curseur.onEnterFrame = function() {
  28.   var couleur1 = CP_getCouleur1(this._x);
  29.   this._parent.Couleur = CP_melange(couleur1, [128, 128, 128], this._y);
  30.   this._parent.CP_creationRectangle();
  31.  };
  32. };
  33. degrade.onRelease = degrade.onReleaseOutside=function () {
  34.  delete curseur.onEnterFrame;
  35.  Mouse.show();
  36.  curseur.stopDrag();
  37.  this._parent.aCouleur.clear();
  38.  this._parent.aCouleur.clear();
  39.  this._parent.aCouleur.moveTo(-65,30);
  40.  this._parent.aCouleur.beginFill(this._parent.couleurFinal);
  41.  this._parent.aCouleur.lineTo(-5,30);
  42.  this._parent.aCouleur.lineTo(-5,60);
  43.  this._parent.aCouleur.lineTo(-65,60);
  44.  this._parent.aCouleur.lineTo(-65,30);
  45.  this._parent.aCouleur.endFill();
  46.  removeMovieClip("curseur2" );
  47.  ExternalInterface.call("RecupCouleur", tSortie.text);
  48. };
  49. this.CP_creationRectangle();
  50. };
  51. CP_creationRectangle = function () {
  52. this.degra3.clear();
  53. var c = RGBtoHEXA(this.Couleur[0], this.Couleur[1], this.Couleur[2]);
  54. this.degra3.lineStyle(1,0x000000);
  55. 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});
  56. this.degra3.moveTo(105,0);
  57. this.degra3.lineTo(123,0);
  58. this.degra3.lineTo(123,100);
  59. this.degra3.lineTo(105,100);
  60. this.degra3.lineTo(105,0);
  61. this.degra3.endFill();
  62. this.degra3.onRollOver = function() {
  63.  this.useHandCursor = false;
  64. };
  65. this.degra3.onPress = function() {
  66.  Mouse.hide();
  67.  Fleche.startDrag(true,125,0,125,100);
  68.  duplicateMovieClip(Fleche, "Fleche2", 10);
  69.  Fleche2._x = Fleche._x;
  70.  Fleche2._y = Fleche._y;
  71.  Fleche2._alpha /= 2;
  72.  Fleche._y = this._ymouse;
  73.  Fleche.onEnterFrame = function() {
  74.   this._parent.CP_couleurSortie();
  75.  };
  76. };
  77. this.degra3.onRelease = this.degra3.onReleaseOutside=function () {
  78.  delete Fleche.onEnterFrame;
  79.  this._parent.aCouleur.clear();
  80.  this._parent.aCouleur.clear();
  81.  this._parent.aCouleur.moveTo(-65,30);
  82.  this._parent.aCouleur.beginFill(this._parent.couleurFinal);
  83.  this._parent.aCouleur.lineTo(-5,30);
  84.  this._parent.aCouleur.lineTo(-5,60);
  85.  this._parent.aCouleur.lineTo(-65,60);
  86.  this._parent.aCouleur.lineTo(-65,30);
  87.  this._parent.aCouleur.endFill();
  88.  removeMovieClip("Fleche2" );
  89.  Mouse.show();
  90.  Fleche.stopDrag();
  91.  ExternalInterface.call("RecupCouleur", tSortie.text);
  92. };
  93. this.CP_couleurSortie();
  94. };
  95. CP_couleurSortie = function () {
  96. if (Fleche._y>50) {
  97.  var blackAndWhite = [0, 0, 0];
  98. } else {
  99.  var blackAndWhite = [255, 255, 255];
  100. }
  101. this.cF1 = CP_melange(this.Couleur, blackAndWhite, Math.abs((Fleche._y-50)*2));
  102. this.couleurFinal = RGBtoHEXA(cF1[0], cF1[1], cF1[2]);
  103. this.nCouleur.clear();
  104. this.nCouleur.moveTo(-65,0);
  105. this.nCouleur.beginFill(this.couleurFinal);
  106. this.nCouleur.lineTo(-5,0);
  107. this.nCouleur.lineTo(-5,30);
  108. this.nCouleur.lineTo(-65,30);
  109. this.nCouleur.lineTo(-65,0);
  110. this.nCouleur.endFill();
  111. tSortie.text = "#"+this.getHEXA();
  112. };
  113. function CP_melange(f, d, p) {// f pour FOND
  114. // d pour DESSUS
  115. // p pour POSITION ou POURCENTAGE
  116. var eR = d[0]-f[0];
  117. var eG = d[1]-f[1];
  118. var eB = d[2]-f[2];
  119. var R = eR*p/100+f[0];
  120. var G = eG*p/100+f[1];
  121. var B = eB*p/100+f[2];
  122. R = Math.round(R);
  123. G = Math.round(G);
  124. B = Math.round(B);
  125. return [R, G, B];
  126. }
  127. function CP_getCouleur1(x) {
  128. var a = 255;// x est donné entre 0 et 100. Il nous le faut entre 0 et 1530
  129. x *= 1530/100;// D'abord on traite le ROUGE
  130. if (x<a || x>=5*a) {
  131.  var R = 255;
  132. } else if (x>=a && x<2*a) {
  133.  var R = 2*a-x;
  134. } else if (x>=2*a && x<4*a) {
  135.  var R = 0;
  136. } else if (x>=4*a && x<5*a) {
  137.  var R = x-4*a;
  138. }
  139. // Puis le VERT  
  140. if (x<a) {
  141.  var G = x;
  142. } else if (x>=a && x<3*a) {
  143.  var G = 255;
  144. } else if (x>=3*a && x<4*a) {
  145.  var G = 4*a-x;
  146. } else if (x>=4*a) {
  147.  var G = 0;
  148. }
  149. // Et enfin le BLEU  
  150. if (x<2*a) {
  151.  var B = 0;
  152. } else if (x>=2*a && x<3*a) {
  153.  var B = x-2*a;
  154. } else if (x>=3*a && x<5*a) {
  155.  var B = 255;
  156. } else if (x>=5*a) {
  157.  var B = 6*a-x;
  158. }
  159. // On arrondit tout ça, valeure ENTIERE uniquement pour le RGB  
  160. R = Math.round(R);
  161. G = Math.round(G);
  162. B = Math.round(B);// On retourne la valeure Hexa (sans le 0x ou le # devant)
  163. return [R, G, B];
  164. }
  165. function HEXAtoRGB(HEXA) {
  166. var caractere = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
  167. HEXA = HEXA.split("" );
  168. for (var i = 0; i<HEXA.length; i++) {
  169.  for (var j = 0; j<caractere.length; j++) {
  170.   if (HEXA[i] == caractere[j]) {
  171.    HEXA[i] = j;// En gros, si on a F, tu mets 15 à la place, et ainsi de suite...
  172.    break;// Stop la seconde boucle "for" !
  173.   }
  174.  }
  175. }
  176. var R = HEXA[0]*16+HEXA[1];
  177. var G = HEXA[2]*16+HEXA[3];
  178. var B = HEXA[4]*16+HEXA[5];
  179. return {R:R, G:G, B:B};
  180. }
  181. function RGBtoHEXA(R, G, B) {
  182. return (R*Math.pow(16, 4)+G*Math.pow(16, 2)+B);
  183. }
  184. getHEXA = function () {
  185. var caractere = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
  186. var R1 = caractere[Math.floor(cF1[0]/16)];
  187. var R2 = caractere[cF1[0]%16];
  188. var G1 = caractere[Math.floor(cF1[1]/16)];
  189. var G2 = caractere[cF1[1]%16];
  190. var B1 = caractere[Math.floor(cF1[2]/16)];
  191. var B2 = caractere[cF1[2]%16];
  192. return (R1+R2+G1+G2+B1+B2);
  193. };
  194. 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 :
  1. <script language="javascript">
  2. function RecupCouleur(couleur) {alert(couleur);}
  3. </script>
  4. <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
  5. </head>
  6. <body>
  7. <script type="text/javascript">
  8. 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
  9. </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">
  10.   <param name="movie" value="COLORPICKER/ColorpickerMX.swf" />
  11.   <param name="quality" value="high" />
  12.   <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>
  13. </object></noscript>
  14. </body>
  15. </html>

mood
Publicité
Posté le 14-10-2007 à 06:41:22  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Flash vers Javascript

 

Sujets relatifs
appel d'un css avec javascriptFile browser en Javascript?
Passage en javascript et phpFaire un site en Flash
Extraire de données de fichier texte vers excelExcel vers solution en ligne
VBA ASP JAVASCRIPT ??????[résolu] Passage de variable javascript vers flash avec iframe
Delais d'action d'un 'setVariable' de Javascript vers FlashFlash 5 Javascript / Actionscript lien HTML vers une frame specifiq
Plus de sujets relatifs à : Flash vers Javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR