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

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  bouton avec plusieurs cible

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bouton avec plusieurs cible

n°1611753
kedrix
Posté le 14-09-2007 à 18:01:00  profilanswer
 

bonjour
j'ai un petit probléme
 
j'ai mis sur une page un bouton que j'ai nommé "bouton" et l'occurence du bouton est aussi appellée bouton
 
j'ai un fichié xml :
 
<?xml version='1.0' encoding="UTF-8"?>
 
<icons>
 
<icon image="icon1.png" cible="fichier1.swf" />
 
<icon image="icon2.png" cible="fichier2.swf" />
 
<icon image="icon3.png" cible="fichier3.swf" />
 
</icons>
 
l'animation est la suivante : j'ai plusieurs images cote à cote qui se charge grâce au fichier xml, quand je clique sur une image celle-ci devient seule sur la fenétre et le bouton apparait alors  
 
ce que j'aimerais c'est que la cible de ce bouton soit fonction de l'image choisie
 
comment je peux faire cela?
 
merci d'avance

mood
Publicité
Posté le 14-09-2007 à 18:01:00  profilanswer
 

n°1611851
Zedlefou
In cabbage we trust !
Posté le 15-09-2007 à 05:23:29  profilanswer
 

Tu peux nous montrer ton code AS ? Pour voir où tu en es ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1611924
kedrix
Posté le 15-09-2007 à 17:56:15  profilanswer
 

je vous le met :
 
il est super long mais ne fuyez pas je vais mettre les parties ou il faut y apporter une modif  :) (certains reconnaitrons le caroussel de gotoandlearn)
 

Code :
  1. import mx.utils.Delegate;
  2. import mx.transitions.Tween;
  3. import mx.transitions.easing.*;
  4. var numOfItems:Number;
  5. var radiusX:Number = 250;
  6. var radiusY:Number = 75;
  7. var centerX:Number = Stage.width/2;
  8. var centerY:Number = Stage.height/2;
  9. var speed:Number = 0.05;
  10. var perspective:Number = 90;
  11. var home:MovieClip = this;
  12. theText._alpha = 0;
  13. bouton._alpha = 0;
  14. info._alpha = 0;
  15. var tooltip:MovieClip = this.attachMovie("tooltip","tooltip",10000);
  16. tooltip._alpha=0;
  17. var xml:XML = new XML();
  18. xml.ignoreWhite = true;
  19. xml.onLoad = function()
  20. {
  21. var nodes = this.firstChild.childNodes;
  22. numOfItems = nodes.length;
  23. for(var i=0;i<numOfItems;i++)
  24.      {
  25.  var t = home.attachMovie("item","item"+i,i+1);
  26.  t.angle = i * ((Math.PI*2)/numOfItems);
  27.  t.onEnterFrame = mover;
  28.  t.toolText = nodes[i].attributes.tooltip;
  29.  t.content = nodes[i].attributes.content;
  30.  t.movie = nodes[i].attributes.movie;
  31.  t.texte = nodes[i].attributes.texte;
  32.  t.icon.inner.loadMovie(nodes[i].attributes.image);
  33.  t.ref.inner.loadMovie(nodes[i].attributes.image);
  34.  t.icon.onRollOver = over;
  35.  t.icon.onRollOut = out;
  36.  t.icon.onRelease = released;
  37.      }
  38. }
  39. function over()
  40. {
  41. home.tooltip.tipText.text = this._parent.toolText;
  42. home.tooltip._x = this._parent._x;
  43. home.tooltip._y = this._parent._y - this._parent._height/2;
  44. home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
  45. home.tooltip._alpha = 100;
  46. }
  47. function out()
  48. {
  49. delete home.tooltip.onEnterFrame;
  50. home.tooltip._alpha = 0;
  51. }
  52. function released()
  53. {
  54.  info._visible = true;
  55.  bouton._alpha=100;
  56.  home.tooltip._alpha = 0;
  57.  for(var i=0;i<numOfItems;i++)
  58.  {
  59.   bouton.indice=i;
  60.   bouton.onRelease = function()
  61.     {
  62.     createEmptyMovieClip("conteneur",1);
  63.     loadMovie(nodes[i].attributes.movie,conteneur);
  64.    };
  65.   var t:MovieClip = home["item"+i];
  66.   t.xPos = t._x;
  67.   t.yPos = t._y;
  68.   t.theScale = t._xscale;
  69.   delete t.icon.onRollOver;
  70.      delete t.icon.onRollOut;
  71.      delete t.icon.onRelease;
  72.   delete t.onEnterFrame;
  73.   if(t != this._parent)
  74.   {
  75.    var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,0,1,true);
  76.    var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,0,1,true);
  77.    var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,100,0,1,true);
  78.   }
  79.   else
  80.   {
  81.    var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,t._xscale,100,1,true);
  82.    var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,t._yscale,100,1,true);
  83.    var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,160,1,true);
  84.    var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,180,1,true);
  85.    var tw5:Tween = new Tween(theText,"_alpha",Strong.easeOut,0,100,1,true);
  86.    theText.text = t.content;
  87.    info.text = t.texte;
  88.    var s:Object = this;
  89.    tw.onMotionStopped = function()
  90.    {
  91.     s.onRelease = unReleased;
  92.    }
  93.   }
  94.  }
  95. }
  96. function unReleased()
  97. {
  98.  info._visible = false;
  99.  bouton._alpha=0;
  100.  delete this.onRelease;
  101.  var tw:Tween = new Tween(theText,"_alpha",Strong.easeOut,100,0,0.5,true);
  102.  for(var i=0;i<numOfItems;i++)
  103.  {
  104.   var t:MovieClip = home["item"+i];
  105.   if(t != this._parent)
  106.   {
  107.    var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,0,t.theScale,1,true);
  108.    var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,0,t.theScale,1,true);
  109.    var tw3:Tween = new Tween(t,"_alpha",Strong.easeOut,0,100,1,true);
  110.   }
  111.   else
  112.   {
  113.    var tw:Tween = new Tween(t,"_xscale",Strong.easeOut,100,t.theScale,1,true);
  114.    var tw2:Tween = new Tween(t,"_yscale",Strong.easeOut,100,t.theScale,1,true);
  115.    var tw3:Tween = new Tween(t,"_x",Strong.easeOut,t._x,t.xPos,1,true);
  116.    var tw4:Tween = new Tween(t,"_y",Strong.easeOut,t._y,t.yPos,1,true);
  117.    tw.onMotionStopped = function()
  118.    {
  119.     for(var i=0;i<numOfItems;i++)
  120.              {
  121.      var t:MovieClip = home["item"+i];
  122.      t.icon.onRollOver = Delegate.create(t.icon,over);
  123.         t.icon.onRollOut = Delegate.create(t.icon,out);
  124.            t.icon.onRelease = Delegate.create(t.icon,released);
  125.               t.onEnterFrame = mover;
  126.     }
  127.    }
  128.   }
  129.  }
  130. }
  131. function moveTip()
  132. {
  133.  home.tooltip._x = this._parent._x;
  134.  home.tooltip._y = this._parent._y - this._parent._height/2;
  135. }
  136. xml.load("icons.xml" );
  137. function mover()
  138. {
  139. this._x = Math.cos(this.angle) * radiusX + centerX;
  140. this._y = Math.sin(this.angle) * radiusY + centerY;
  141. var s:Number = (this._y -perspective) / (centerY+radiusY-perspective);
  142. this._xscale = this._yscale = s * 100;
  143. this.angle += this._parent.speed;
  144. this.swapDepths(Math.round(this._xscale) + 100);
  145. }
  146. this.onMouseMove = function()
  147. {
  148. speed = (this._xmouse-centerX)/2500;
  149. }


 
ce que moi j'ai rajouté donc au code de base :
 

Code :
  1. t.cible = nodes[i].attributes.cible;


 
j'ai mis un trace, pas d eprobléme il charge bien les différentes cibles
 
et voila ou je bloque
 

Code :
  1. for(var i=0;i<numOfItems;i++)
  2.  {
  3.   bouton.onRelease = function()
  4.     {
  5.     createEmptyMovieClip("conteneur",1);
  6.     loadMovie("cible",conteneur);
  7.    };
  8.   var t:MovieClip = home["item"+i];


 
je débute en actionscript alors soyez indulgent  :sweat:  
j'ai mis un trace et j'ai des "undefinded"
 
merci d'avance


Message édité par kedrix le 15-09-2007 à 17:57:26
n°1611945
Zedlefou
In cabbage we trust !
Posté le 15-09-2007 à 20:01:20  profilanswer
 

Si j'ai bien compris, tu devrais donner un id à ton bouton et créer une fonction pour ton action. Exemple grossier :
bouton.id = i ;
bouton.onRelease = function ()
{
show(this.id);
}
function show(foo){
// Ici grace à l'ID (foo) tu récupères ta cible que tu charges dans un clip, par exemple
}


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1611951
kedrix
Posté le 15-09-2007 à 20:52:05  profilanswer
 

salut
merci pour ta réponse
si je met un  
 

Code :
  1. trace(this.id);

aprés

Code :
  1. show(this.id)

il me met "6"  :(

n°1611988
Zedlefou
In cabbage we trust !
Posté le 16-09-2007 à 06:29:14  profilanswer
 

Il fait ça pour chaque bouton ? As-tu bien mis le code que je t'ai donné à l'interieur de la boucle ?


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1612002
kedrix
Posté le 16-09-2007 à 11:15:42  profilanswer
 

voila ce que j'ai fait :  
 

Code :
  1. for(var i=0;i<numOfItems;i++)     
  2.   {         
  3.          bouton.id = i ;
  4.          bouton.onRelease = function()   
  5.                   {                 
  6.                         show(this.id);
  7.                    }
  8.          function show(foo)
  9.                     {
  10.                      loadMovie("foo" ); 
  11.                     }         
  12. }   
  13.    var t:MovieClip = home["item"+i];


 
mais je pense que tu as du mal comprendre mon probléme
en fait j'ai un calque avec dessus le bouton mais il n'y a qu'un seul bouton
ce même bouton apparait pour chaque image visualisé
est-il possible de changer la cible du bouton en fonction de l'image cliquée qui est "item" ?
 
merci d'avance pour ton aide

n°1612013
Zedlefou
In cabbage we trust !
Posté le 16-09-2007 à 12:14:54  profilanswer
 

Ah ok !
Ben non. Si tu as un seul nom d'occurence, tu peux pas donner de cible différente. Normal.


---------------
Jeu de simulation Boursière - Version BETA - https://www.facebook.com/wildstocks
n°1612014
kedrix
Posté le 16-09-2007 à 12:18:00  profilanswer
 

ok, mince
 
comment faire alors pour faire apparaitre donc un seul bouton a chaque image cliquée mais que ce bouton soit différent selon l'image cliquée ?
 
j'avais essayé de faire ca mais je n'y étais pas arrivée peut étre qu'avec ton aide
 
merci d'avance

n°1612048
kedrix
Posté le 16-09-2007 à 15:15:20  profilanswer
 

ca y'est j'ai réussi a charger l'animation en fonction de l'image cliquée pour UN même bouton
 
mon probléme est que maintenant l'animation se charge en dessous de l'animation principale
 
ce que j'aimerais moi c'est qu'elle remplace complétement l'animation principale
 
voila ce que j'ai fait :
 

Code :
  1. createEmptyMovieClip("conteneur",1);
  2. conteneur.loadMovie(r);


 
merci d'avance

mood
Publicité
Posté le 16-09-2007 à 15:15:20  profilanswer
 

n°1612123
kedrix
Posté le 16-09-2007 à 20:46:58  profilanswer
 

probléme résolu :)


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

  bouton avec plusieurs cible

 

Sujets relatifs
Validation plusieurs formulaires !Etaler des réultats sur plusieurs pages
USB&Bouton poussoirValidation de plusieurs conditions avant sauvegarde info dans un fichi
Schema.ini peut il s'appliquer à plusieurs fichiers différents?Bouton ANNULER inactif ...
ouvrir un fichier word avec bouton macro excelplusieurs ligne d'upload de fichier, identifier celle choisi
javascript sur bouton browseSomme à plusieurs critère vba
Plus de sujets relatifs à : bouton avec plusieurs cible


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