begin process at 2012 05 26 16:08:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

"Automatiser" un code apres une boucle for


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

"Automatiser" un code apres une boucle for

mardi 9 juin 2009 à 08:24:52 | "Automatiser" un code apres une boucle for

Ariranha

Bonjour,

J'attache sur ma scène des movieClips venant de la bibliothèque à l'aide d'une boucle for :

[code]
for (i=0; i<4; i++) {
    attachMovie("id"+i,"id"+i,this.getNextHighestDepth(),{_x:idX, _y:100});
    idX += 100;
}
[/code]

Ensuite j'aimerai "automatiser" une partie du code afin que je n'ai pas à le réécrire pour chaque entité ("id"+i)
Imaginons que chaque élément puisse être "drag 'n droper" : pour ne pas devoir réécrire le code pour chaque élément, quelle serait la bonne syntaxe (pour la partie en rouge du code ci-dessous) :

[code]
id[i].onPress = function() {
    startDrag(this);
    this.swapDepths(1000);
};
[/code]

Si quelqu'un à la solution, ça serait vraiment sympa de la partager.

Bonne journée.


mardi 9 juin 2009 à 11:29:22 | Re : "Automatiser" un code apres une boucle for

pegase31

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

Pourquoi ne mets-tu pas directement ton code dans la boucle ?

Peg'
mardi 9 juin 2009 à 11:43:25 | Re : "Automatiser" un code apres une boucle for

Ariranha

C'est un bon début que tu me donne là "pegase31".

Mettre le code dans la boucle : je n'y avais tout simplement pas pensé, mais c'est vrai que ça a du sens.

J'ai donc essayé de mettre le code dans la boucle :

[code]
for (i=0; i<4; i++) {
attachMovie("id"+i,"id"+i,this.getNextHighestDepth(),{_x:idX, _y:100});
idX += 100;

id[i].onPress = function() {
startDrag(this);
this.swapDepths(1000);
};
[/code]

Mais je n'ai toujours pas la syntaxe qui va avec. Si au lieu de id[i], je mets this cela ne marche pas. Je ne vois vraiment pas comment faire.

Une solution, une piste?
mardi 9 juin 2009 à 11:45:27 | Re : "Automatiser" un code apres une boucle for

pegase31

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
oui; il suffit juste de savoir que tu peux faire ça :

var monClip:MovieClip = attachMovie(....

Et le tour est joué.

Peg'
mardi 9 juin 2009 à 12:07:04 | Re : "Automatiser" un code apres une boucle for

Ariranha

Merci beaucoup, pour cette réponse qui est largement acceptée.

Tout de même, j'aurais une autre question :

      - Je voudrais maintenant créer une autre boucle pour attacher sur
la scène des targets (tab[j]). Ci dessous le code de relation :

[code]
monID.onRelease = monID.onReleaseOutside=function () {
stopDrag();
if (this.hitTest(tab1)) {
this._x = tab1._x;
this._y = tab1._y;
this.enabled = false;
}
};
[/code]

Quel est la "meilleure" solution pour que je puisse remplacer
tab1 par tab[j], dans le code ci-dessus. Car il faut savoir que tous les
targets conviennent à chaque monID et que seulement aprés un clic
btn je fasse quelque chose du genre if ([i] == [j]){
"réponse bonne";
}else{
                                                 "monID retourne à sa place  
                                                 initiale";
                                                 }

Merci beaucoup pour ton aide.
mardi 9 juin 2009 à 20:50:45 | Re : "Automatiser" un code apres une boucle for

pegase31

Membre Club Administrateur CodeS-SourceS
Il y a une solution simple : placer chacun des éléments que tu as dans un tableau et parcourir les cases du tableau en évitant celle de ton éléments sur lequel tu as cliqué.
c'est bourrin, mais ça marche.

Peg'
mercredi 10 juin 2009 à 15:58:58 | Re : "Automatiser" un code apres une boucle for

Ariranha

Encore merci pour avoir répondu, après si tu me dis que c'est "bourrin", est ce que tu vois une autre solution (pas besoin de pondre un code tout prêt, mais plutôt des pistes de recherche)?
jeudi 11 juin 2009 à 00:17:43 | Re : "Automatiser" un code apres une boucle for

Ariranha

Y a quand même quelque chose qui m'échappe, voici a quoi ressemble la boucle maintenant :

for (i=1; i<9; i++) {
    var monTAB:Array = attachMovie("tab"+i, "tab"+i, this.getNextHighestDepth(), {_x:tabX, _y:tabY});
    var monID:MovieClip = attachMovie("id"+i, "id"+i, this.getNextHighestDepth(), {_x:idX, _y:idY});
}

Je mets donc des fonds au tableau, mais lorsque que je fais ceci :

if (this.hitTest(monTAB))

Pourquoi est-ce que le hitTest reste bloqué sur le dernier tab attaché soit tab8, je pensais pouvoir appliquer le principe que tu expliquais plus haut soit de définir un nom générique à une variable [monID:MovieClip], dommage
jeudi 11 juin 2009 à 00:50:19 | Re : "Automatiser" un code apres une boucle for

pegase31

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
parceque tu recrées ton tableau à chaques boucles au lieu de simplement ajouter le clip dedans .. c'est pourtant logique.

Tu crées ton tableau avant et tu fais un simple push de ton objet créé.

Peg'


Cette discussion est classée dans : boucle, code, id, for, automatiser


Répondre à ce message

Sujets en rapport avec ce message

boucle for [ par upyboobs ] salut.J'aimerai savoir s'il est possible de faire varier la variable utilisé dans la boucle for de 0,1 en 0,1 et encore mieux : du pas que l'on veut.m action sur tableau.. [ par nirousse ] Voila, je vous explique.j'ai un tableau nommé x.Pour exemple, on va dire qu'il contient les valeurs suivantes : x=[3,2,1].Moi, en appelant 1 fonction, est-il possibe de tracer des var numérotée via une boucle for [ par anartiste ] anartistebonjour à tous j'ai un problème tout bête, en fait je crée des variables par une boucle for du genre          &nbs pb de boucle for [ par athenavenus ] Bonjour, j'essaie de télécharger du texte quand on clic sur trois lien cependant j'essaie de le faire avec une boucle for mais ça ne marche pas... si Arreter un swf [ par HydraThallium ] voila soit c'est tout con soit j'ai pas le code script pour arreter mon swf bon a l'ouverture de mon swf (menu) s'ouvre un autre swf (vous pouvez imag incrémentation de sec avec une boucle for [ par athenavenus ] gilou[orange][font=Verdana]Votre texte ICI[/font=Verdana] Bonjour, Je voudrais que toutes les 10 secondes une image différente s'affiche, donc j'ai f incrémentation de sec avec une boucle for [ par athenavenus ] gilou[orange][font=Verdana]Votre texte ICI[/font=Verdana] Bonjour, Je voudrais que toutes les 10 secondes une image différente s'affiche, donc j'ai f son [ par kisaka ] Voici mon code .as qui fait jouer du son au clic sur le movie .swf on (release) { var sonextrait = new Sound(); sonextrait.loadSound("../trac Je sais pas comment ecrire ma boucle for... [ par Effixe2002 ] comme dit ci dessus, je ne sai pas comment rediger ma boucle for pour realiser ça :   _parent.Tag1 = sampleArray_ar[0]   _parent.Tag2 = sampleArray_a problème de concaténation.. [ par albeuz ] Bonjour à tous! C'est mon premier message sur ce forum..d'habitude je trouvais des réponses sans avoir à poser de questions mais là je bloque ... C'es


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,608 sec (4)

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