[Flash] Changer dynamiquement la couleur d'un clip

Changer dynamiquement la couleur d'un clip [Flash] - Web design - Graphisme

Marsh Posté le 06-03-2006 à 15:38:20    

J'ai un chargement de fichier XML qui contient ceci :

Code :
  1. <colors>
  2. <dprt couleur="#FF0000" />
  3. </colors>

(note : il n'est pas entier là...)
Je voudrais savoir comment affecter ce #FF0000 à un clip nommé 'carre'
j'ai fait ça :

Code :
  1. _root.carre._teinte = this.firstChild.childNodes[0].attributes.couleur;
  2. _root.control.text = this.firstChild.childNodes[0].attributes.couleur;

et mon controleur 'control' affiche bien #FF0000, par contre mon carre reste vert...
 
des idées ??
 
Merci :)

Reply

Marsh Posté le 06-03-2006 à 15:38:20   

Reply

Marsh Posté le 06-03-2006 à 16:38:33    

aucunes ??

Reply

Marsh Posté le 06-03-2006 à 18:09:43    

:hello:
_teinte n'est pas une propriété de movieClip :D (déjà, si c'est en français, tu oublies)
 
 
Je ne connais pas la propriété qui gère ça, mais regarde du côté de la doc de flash ;)

Reply

Marsh Posté le 06-03-2006 à 23:52:40    

ok merci ;)
notons tout de même que si j'ai écrit '_teinte' c'était pour montrer ce que je voulais... j'ai bien vu que la propriété 'teinte" n'était pas dispo ;)
 
personne d'autre ne voit ??

Reply

Marsh Posté le 20-06-2006 à 23:52:24    

Moi aussi ça m'intéresse, j'ai galéré un moment sur quelques forums pour avoir un peu plus de précisions que dans les aididactitielexiques de flash.
J'ai trouvé deux trois trucs en anglais que je vais tester.
Mais si quelqun a un truc ici, je suis aussi preneur.

Reply

Marsh Posté le 21-06-2006 à 11:28:21    

xkamui a écrit :

ok merci ;)
notons tout de même que si j'ai écrit '_teinte' c'était pour montrer ce que je voulais... j'ai bien vu que la propriété 'teinte" n'était pas dispo ;)
 
personne d'autre ne voit ??


 
Bon déjà t'es pas dans la bonne section. Vaut mieux aller dans Programmation>AS.
Mais puisque j'y suis, je vais quand même te répondre.
 
Je n'ai pas trouvé de propriété de couleur et je pense qu'il n'y en a pas. La seul méthode que je connais pour ton probléme c'est de créer ton objet en programmation objet.
 
Voici une fonction que j'ai fait pour simplifier la démarche :
 

Code :
  1. var niveau = 5;
  2. _global.carre = function(couleur, px, py, nf, large, haut) { // pour pouvoir récupérer les données que tu envoies
  3. this.couleur = couleur;
  4. this.px = px;
  5. this.py = py;
  6. this.nf = nf;
  7. this.largeur = large;
  8. this.hauteur = haut;
  9. };
  10. carre.prototype.dessiner = function() {
  11. _root.niveau++; // on incrémente le niveau pour pouvoir créer plrs carré sans qu'ils s'effacent
  12. var namecr = this.nf;
  13. var couleurhexa = "0x"+this.couleur; // on crée un code couleur conforme à Flash
  14. var realx = this.px;
  15. var realy = this.py;
  16. this.clip = _root.createEmptyMovieClip(namecr, _root.niveau); // on crée le clip
  17. this.clip.beginFill(couleurhexa); // on commence à dessiner le clip
  18. this.clip.moveTo(realx, realy);
  19. this.clip.lineTo(realx+this.largeur, realy);
  20. this.clip.lineTo(realx+this.largeur, realy+this.hauteur);
  21. this.clip.lineTo(realx, realy+this.hauteur);
  22. this.clip.lineTo(realx, realy);
  23. this.clip.endFill();
  24. };


 
Pour le lancer tu fais :
 

Code :
  1. _root.mon_carre = new carre("ffCC00", 275, 200, "box", 200, 150); // changer les données entre ()
  2. _root.mon_carre.dessiner();


 
Quand tu lances ta fonction tu met tes valeurs à la place des miennes bien sur ;)
Dans l'ordre : le code couleur sans le #, la position en X et en Y du coin supérieur gauche du clip, le nom de ton clip, sa largeur et sa hauteur.
 
Et voila  :pt1cable:  Tu viens de te rendre compte que c'est beucoup plus compliqué qu'un simple "_changerlacouleur". Mais au moin t'as appris 2 trucs important en AS. Les fonctions et la POO.
 
PS : il y a peut être des trucs pas très rigoureu, je suis pas développeur non plus :D


Message édité par Zedlefou le 21-06-2006 à 11:30:30
Reply

Marsh Posté le 21-06-2006 à 19:37:19    

ah ouais. tu devrais lire le manuel.
 

Code :
  1. // soit 'mc' le nom du clip.
  2. var mcColor:Color = new Color(mc);
  3. mcColor.setRGB(0xFF0000);


 
zedlefou, change rien, t'es formidable. Merci pour tout ce bonheur.

Reply

Marsh Posté le 21-06-2006 à 20:08:48    

Bah voila, j'aurai au moins appris un truc et relancé le sujet :D
 
Bon en même temps j'utilise pas trop ce genre de truc .... Mais pour l'animation ça doit avoir des côtés funky.

Reply

Marsh Posté le 21-06-2006 à 20:16:02    

Ah oui au fait :  
"La classe Color est déconseillée depuis Flash Player 8."

Reply

Marsh Posté le 21-06-2006 à 20:37:05    

et alors? la norme actuelle en production, c'est toujours Flash Player 7.
 
la classe de remplacement rame à mort, soit dit en passant.
 
pour l'anim effectivement c'est sympa l'objet Color ;)

Reply

Marsh Posté le 21-06-2006 à 20:37:05   

Reply

Marsh Posté le 13-02-2011 à 14:47:05    

Bonjour,
J'ai ce même problème à résoudre
ce code s'applique t-il à une page xml ?
je cherche à modifier la couleur d'un swf de préchargement à partir de xml ou css
est-ce possible ?
 
J'ai un swf qui est noir lorsqu'il se lance seul
et qui apparait blanc à partir d'une page html
j'ai modifié toutes les couleurs de fond background et style
ça ne vient pas de là.
 
Si vous avez une réponse... merci


---------------
ct
Reply

Marsh Posté le 13-02-2011 à 14:48:24    

craps_youpla a écrit :

ah ouais. tu devrais lire le manuel.
 

Code :
  1. // soit 'mc' le nom du clip.
  2. var mcColor:Color = new Color(mc);
  3. mcColor.setRGB(0xFF0000);


 
zedlefou, change rien, t'es formidable. Merci pour tout ce bonheur.


 
Bonjour,
J'ai ce même problème à résoudre
ce code s'applique t-il à une page xml ?
je cherche à modifier la couleur d'un swf de préchargement à partir de xml ou css
est-ce possible ?
 
J'ai un swf qui est noir lorsqu'il se lance seul
et qui apparait blanc à partir d'une page html
j'ai modifié toutes les couleurs de fond background et style
ça ne vient pas de là.
 
Si vous avez une réponse... merci


---------------
ct
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed