begin process at 2010 02 10 13:35:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Simplifier l'écriture d'un code


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Simplifier l'écriture d'un code

vendredi 3 novembre 2006 à 15:47:22 | Simplifier l'écriture d'un code

Gizmil

Hello à tous!

J'ai une petite colle à vous poser!

Je vous explique, en gros, à quoi sert le code ci-dessous. Il me permet de coloriser des textField contenus dans des clips créés dynamiquements. Chaque texfield contient une et une seule lettre. Ces clips contenant une lettre, mis côte à côte, créent un texte. Ces clips apparaissent successivement, les uns après les autres. Mon but est de coloriser certains mots de ce texte lorsque leur apparition est complète (lorsque le mot est détecté comme étant entier).

Ce n'est pas grave si vous ne comprenez pas comment fonctionne exactement mon code et à quoi se rapportent certaines variables car ce dont j'ai besoin, c'est plutôt d'une aide pour simplifier son écriture. Voici le code, je vous explique ensuite l'aide dont j'ai besoin.

ActionScript:

chainToBeColor = "bonjour"; onEnterFrame = function(){      if (substring(chainToBeColor, m, 1) == animTexte1_mc.lettreActuelle) {           if (m<=nbrLettersToBeColor) {                m++;                this["letter"+m] = true;           } else {                m = 1;                for (n=1; n<=nbrLettersToBeColor; n++) {                     this["letter"+n] = false;                }           }      } else {           m = 1;           for (n=1; n<=nbrLettersToBeColor; n++) {                this["letter"+n] = false;           }      }      if (this["letter"+nbrLettersToBeColor]) {           p = animTexte1_mc.i-1;           q = animTexte1_mc.i-nbrLettersToBeColor-1;           while (p>q) {                p--;                animTexte1_mc["lettre"+p].contenerLettre_mc.lettre_txt.textColor = 0x00FF00;           }      } } 


Voilà, j'ai une chaîne de caractères contenue dans la variable chainToBeColor. Cette chaîne correspond au mot à coloriser dans mon texte.
Donc, pour le moment, mon code me permet de coloriser tous les mots du texte qui correspondent au contenu de chainToBeColor. Exemple: si chainToBecolor = "bonjour", tous les mots "bonjour" seront colorisés dans mon texte.
Ce que j'aimerais faire, c'est pouvoir coloriser plusieurs mots différents dans mon texte. Exemple: si chainToBeColor1 = "bonjour" et chainToBeColor2 = "bienvenue" alors tous les mots "bonjour" et tous les mots "bienvenue" seront colorisés dans mon texte.

Le problème est d'appliquer mon code aux différentes chaînes de caractères contenues dans chainToBeColor. Si je voulais faire ça de manière bien balourde, il me suffirait de copier plusieurs fois mon code, un code par chaîne à coloriser mais pour peu que j'aie beaucoup de chaînes à coloriser, je risque de me retrouver avec des lignes de code interminables.

Il faut tenir compte des variables m, n, p, q, nbrLettersToBeColor,... qui interviennent dans mon code. Leur valeur est fonction du contenu de chainToBecolor et évolue au fil des boucles. Si ces variables sont utilisées dans le code appliqué à chainToBeColor1, elles ne peuvent être réutilisées dans le code appliqué à chainToBeColor2 à moins de les remettre à leur valeur initiale entre la lecture des deux codes, ce qui n'est pas possible à cause du mode de fonctionnement du code qui utilise les boucles pour faire évoluer la valeur de ces variables.

Voilà donc pourquoi je cherche une méthode d'écriture qui me permettrait de n'écrire qu'un seul code pour toutes les chaînes de caractères (ou mot dans le texte) que je pourrais vouloir coloriser, un code dans le genre de ceci:

ActionScript:

chainToBeColor1 = "bonjour"; chainToBeColor2 = "coucou"; chainToBeColor3 = "aurevoir"; for(r=1;r>=3;r==){      if (substring(this["chainToBeColor"+r], this["m"+r], 1) == animTexte1_mc.lettreActuelle) {           if (this["m"+r]<=this["nbrLettersToBeColor"+r]) {			this["m"+r]++;                this["letter"+this["m"+r]] = true;		} else {                ...... 


Mais ce que j'écris ci-dessus me semble mauvais, notamment au niveau de la syntaxe à certains endroits. D'ailleurs ça ne fonctionne pas.
Comme expliqué plus haut, la difficulté d'une écriture simplifiée réside dans les variables m, n, p, q, nbrLettersToBeColor,... contenues dans le code. Dans l'exemple ci-dessus, j'ai fais en sorte de modifier le nom des variables en fonction de la chaîne de caractère qui est traîtée. Comme ça, chaque chaîne de caractère possède ses propres variables (noms des variables) et donc, les valeurs dans les variables sont propres à la chaîne de caractère en cours de traitement. Mais reste à parvenir à cette simplification d'écriture.

Donc voilà! Dur dur, les explications, j'espère que vous comprendrez. Tout ce que vous avez à retenir, c'est que je cherche à déclarer mon code simultanément pour des chaînes de caractère différentes contenues dans chainToBeColor. Voilà, ça résume tout, je crois!

Merci si vous avez des idées à me proposer!


Cette discussion est classée dans : code, variables, texte, chaintobecolor, coloriser


Répondre à ce message

Sujets en rapport avec ce message

Enregistrer des variables dans un fichier texte [ par Asurmen ] J`ai besoin de savoir comment enregistrer des variables dans un fichier texte. Je sais comment les charger a partir du fichier mais je ne suis pas ca Accéder aux variables récupérées de PHP [ par mimi94 ] Bonjour,J'ai besoin d'un coup de main urgent.Avec FLash5, j'ai créé un symbole dans ma bibliothèque dans lequel j'ai mis un champ de texte dynamique. Variables dans URLs ? [ par Yelis32 ] Bonjour /bonsoirJe cherche à mettre dans une partie d'une URL un texte entré dans une boite de texte (dans flash).Comment y parvenir ?Merci d'avance Y Scroll et texte dynamik [ par radge ] Salut all,Je cherche le code mathematique qui permet de calculer le defilement de la scroll par rapport au texte. En faite j'importe du texte dynamik petit pb avec des variables :/ [ par winwarrior ] Bon donc voila je suis débutant en flash et j'aimerai afficher un texte comme ça => nomduflash.swf?texte=coucou et donc que le flash affiche coucou :p Actionscript et les variables [ par phobus ] Hello.Bon alors je résume vite fait pour qu'il n'y ait pas de malentendu, je débute l'actionscript et j'en suis nulle part.La seule expérience que j'a Passage de variables entre deux fichiers swf [ par cadoudal56 ] Bonjour,Voici mon probleme, je ne trouve pas d'exemples ou a partir d'une anim flash, j'appelle un autre fichier SWF mais en lui passant une ou plusie comment simuler un retour à la ligne par le code dans un champ texte? [ par Sylvain20007 ] Bonjour!Alors voilà, j'ai deux champs texte, un en mode saisie(text1), l'autre en mode dynamique multiligne(text2), et un bouton. On clique sur le bou scrolling: le texte ne défile pas [ par jessilou ] Bonjour j'ai créé un fichier scrollbar, dans un fichier p3.swf Dans ce scrollbar j'ai un texte dynamique Dans un movie clip barre, j'ai des boutons de load variables avec accent, mail to [ par doark ] Bonjour, Je suis débutant j'utilise le script load variable nums pour charger du texte dynamique à partir d'un document .txt seulement les accents app


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales