begin process at 2010 02 10 07:44:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Creer un tableau de movie clip


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

Creer un tableau de movie clip

mercredi 23 mai 2007 à 19:50:30 | Creer un tableau de movie clip

LunaticSky

bonjour
voila je voudrais creer un tableau de movie clips, je connais la syntaxe des tableaux. en fait j'essaie de faire un jeu du memory et je n'arrive pas a relier mon tableau aux cartes. et donc lui associer l'evenement onPress (ex: tab[i].onPress -> est ce que j'ai le droit de le faire, est-ce bon et y a t il un autre moyen?

mirciiii
jeudi 24 mai 2007 à 10:59:05 | Re : Creer un tableau de movie clip

faiblard

Je ne connais pas d'autre moyen simple si ton nombre de clip et variable tu fait un truc du genre : for (iNum = 0; iNum < tab[MAX].length; iNum++) { /*permet de faire pour chaque MC*/ aTableauMC[iNum].onPress = function () { //ton code /!\ il ne faut pas qu'il y est de iNum la dedans sinon il prendra MAX +1 comme valeur... c'est la partie embétente... } }
jeudi 24 mai 2007 à 13:45:48 | Re : Creer un tableau de movie clip

bali_balo

En supposant que tes clips soient nommés ainsi : "carte_0", "carte_1", etc.
tu déclares tout d'abord ton tableau et tu mes les références de tes clips "cartes"  dans celui-ci :

//   en supposant que tu est 52 cartes sur la scène principales de référence "_root"
var nbCartes :Number = 52;
//   déclaration et définition du tableau contenant les références des cartes
var tabCartes :Array = new Array( nbCartes );

//   référence à la carte courante pour une "meilleur gestion" dans la boucle for
var carte :MovieClip;
for( var i:Number = 0 ; i<nbCartes  ; i++ ) {
    //   on place la référence de la carte "carte_i" dans le tableau
    carte = _root["carte_" + i];
    tabCartes[i] = carte ;
    carte.onPress = fucntion() {
       //   ton code lorsque tu appuis sur une carte
    }
   
    //   etc...

}


bali_balo....=] : ready for his come back on flashkod!!!
jeudi 24 mai 2007 à 14:40:52 | Re : Creer un tableau de movie clip

LunaticSky

merci pour vos solutions mais le probleme c'est que je ne peux pas nommer toutes mes cartes 'cartes' sachant que je dois detecter quand deux cartes retournees sont identiques, enfin le principe du memory, je vous montre mon algo

//algo pour le memory
//utliser duplicatemovie , setproperty etc !!


//variables
var cptr: Number= new Number(0);
var i: Number= new Number(0);
var j: Number= new Number();
var k: Number= new Number();
var itmp: Number= new Number(0);
var cptr: Number= new Number(0);
var idInterval: Number= new Number();

//declarer le tableau le remplir etc
//tab[i][j];
//mettre ttes les cartes en invisible dabord.

this.createTextField("timer_txt", this.getNextHighestDepth(), 0, 0, 100, 22);

idInterval=setInterval(interval,5);
var tab:Array = new Array("agw","hg","cg","agw","hg","cg");


function interval(){

cptr = getTimer();
/*for(i=0;i<7;i++)

_root["carte"+i]._visible=false;
};*/
//tant que le jeu tourne pendant 10 minutes
while(cptr<600000){
tab[i].onPress = function ()
//->c cette condition qui flanche
 { 
 oktxt="bonnn";//juste pour verifier qu'on est entre dedans ce qui n'est pas le cas
 tab[i]._visible=false;
  _root["carte"+i]._visible=false;//cacher le revers de la carte
 //si on a pas fait de clik encore
 if (cptr==0)
  { //on stock le nom de la carte dans une variable temporaire   
  tmp=tab[i];
  itmp=i;//on stock son indice
  
  cptr+=1;//on incremente le ocmpteur de clik
    
  }

  // si on a deja clike une fois
  else if (cptr==1){
     //si les cartes sont identiques
     if(tab[i]==tmp){ tab[i]._alpha=30;
            tab[itmp]._alpha=30;
         //on les grise, incremente le score et les vire du tableau
        score+=10         
         score.text=score;
         tab.splice(i);
         tab.splice(itmp);
 
        }

     else{//on les immobilise pdt 3 secondes
      sleep(3);
      //on les retourne
      tab[i]._visible=false;
      tab[itmp]._visible=false;
      }
    //on remet le cptr a 0
     cptr=0;

     }
       }


i++;
if(i>7)i=0;

}
}

jeudi 24 mai 2007 à 15:30:57 | Re : Creer un tableau de movie clip

faiblard

@ Bali_Balo : Il te sers a quoi de plus ton carte bali balo? (par rapport a mon code y'a juste les déclaration en plus (la flemme de les mettre en aide) et carte...) Explique moi pourquoi tu dit que cela donne une meilleur gestion? @T'es cartes ne se nommeront pas toutes "cartes" mais "carte_1" "carte_2" (comme te la écris Bali_balo) tu vire ton i++ i<7... a la fin. Puis tu mes t'es "carte[i]" dans une boucle for comme indiqué au dessus... Ca donnera a peu pres : ( a partir du while) -------- while(cptr<600000){ for(i=0;i<7;i++) { tab[i].onPress = function () //->c cette condition qui flanche { trace("bonnn");//juste pour verifier qu'on est entre dans la fonction tab[i]._visible=false; _root["carte"+i]._visible=false;//cacher le revers de la carte //si on a pas fait de clik encore if (cptr==0) { //on stock le nom de la carte dans une variable temporaire tmp=tab[i]; itmp=i;//on stock son indice cptr+=1;//on incremente le compteur de clik } // si on a deja clike une fois else if (cptr==1) { //si les cartes sont identiques if(tab[i]==tmp){ tab[i]._alpha=30; tab[itmp]._alpha=30; //on les grise, incremente le score et les vire du tableau score+=10 score.text=score; tab.splice(i); tab.splice(itmp); } else{//on les immobilise pdt 3 secondes sleep(3); //on les retourne tab[i]._visible=false; tab[itmp]._visible=false; } //on remet le cptr a 0 cptr=0; } } } } } PS : ca, ca fera pas 10 minutes :) //tant que le jeu tourne pendant 10 minutes while(cptr<600000) ensuite a part pour : tab[i].onPress il ne faut pas la meme variable que celle de la boucle for pour les autre Entier... Car sinon tu aura la valeur max de la boucle for a chaque fois et non le i de la carte cliqué
jeudi 24 mai 2007 à 16:29:28 | Re : Creer un tableau de movie clip

LunaticSky

daccord mais dans ce cas je vais devoir traiter les cartes au cas par cas, par exemple si j'ai une paire dans le jeu qui s'appelle Donald (sans rancune pour les fans de disney) il faut que je connaisse a quoi correspond chaque carte, par exemple les cartes cartes_1 et carte_3 sont des cartes Donald et faut que je le teste ici par exemple:

function interval (){

for( var i:Number = 0 ; i<nbCartes  ; i++ ) {
    //   on place la référence de la carte "carte_i" dans le tableau
    carte = _root["carte_" + i];
    tabCartes[i] = carte ;
   
 carte.onPress = fucntion() {
     if(cptr==0){
 
  tmp=carte;
  itmp=i;
  cptr+=1;
  }
  
   else if(cptr==1){
        
     if(tmp=="carte_1"){//----> ICI
         //cartes 1 et 3 sont identiques
         if(carte=="carte_3")
       {
        carte_3._alpha=30;
        carte_1._alpha=30;
        score+=10;         
         score.text=score;
        tabCartes.splice(i);
         tab.splice(itmp);
        
        }
         else{
         carte._visible=false;
       carte_1._visible=false;
    
       }
     donc si j'ai 6 carte jvais devoir faire 6 tests..

jeudi 24 mai 2007 à 16:56:24 | Re : Creer un tableau de movie clip

mdc888fr

Je voudrai pas mettre mon grain de sable, mais il me semble que Faiblard a déjà répondu à ta question... En effet, pourquoi tester chaque carte séparement ?
Bref, de même, il me semble que le code

var carte :MovieClip;
for( var i:Number = 0 ; i<nbCartes  ; i++ ) {
    //   on place la référence de la carte "carte_i" dans le tableau
    carte = _root["carte_" + i];
    tabCartes[i] = carte ;
    carte.onPress = fucntion() {
       //   ton code lorsque tu appuis sur une carte
    }
   
    //   etc...

}

Serait pareil avec :

var carte :MovieClip;
for( var i:Number = 0 ; i<nbCartes  ; i++ ) {
    //   on place la référence de la carte "carte_i" dans le tableau
    tabCartes[i] = _root["carte_" + i];
    tabCartes[i].onPress = fucntion() {
       //   ton code lorsque tu appuis sur une carte
    }
   
    //   etc...

}


vendredi 25 mai 2007 à 00:30:18 | Re : Creer un tableau de movie clip

bali_balo


Explique moi pourquoi tu dit que cela donne une meilleur gestion?


Le plus gros intéret d'utiliser l'AS2 pour moi c'est la création de structure performante, modulable, réutilisable , etc. avec les classes interfaces, etc.
Le 2ème intéret c'est le typage des variables! Je suis chef de projet Flash. Depuis que j'ai à ma disposition Flash 8 et donc AS2. C'est que du bonheur!!! avec le typage. ça évite de passer des erreurs et des erreurs de debug pour rien alors que l'on comparé par exemple un String avec un Number... Le compilateur est moins bète! (c'était juste un exemple ^^)


Bref, et pour la variable "carte" c'est une habitude, dans de gros bloc de code, il est préférable d'avoir une variable temporaire qui stocke la référence d'un clip dont le nom est complexe genre : tabGrilleSudoku[i][j] ou encore clip1.clip2["jetonMahjongg_"+i], etc.
on  fait :
var tmp:MovieClip = clip1.clip2["jetonMahjongg_"+i];
for( ... ) {
    tmp._x = 9898;
tmp._y = 9809;
tmp.setId( 4 );
}

C'est plus propre et surtout lisible que de faire :

for( ... ) {
    clip1.clip2["jetonMahjongg_"+i]._x = 9898;
clip1.clip2["jetonMahjongg_"+i]._y = 9809;
clip1.clip2["jetonMahjongg_"+i].setId( 4 );
}


bref, c'est mes méthodes de travail que je propose à mes développeur. Et il adore ça!!! Le code parraît vraiment plus claire...
Enfin voilà quoi .


bali_balo....=]
vendredi 25 mai 2007 à 09:59:34 | Re : Creer un tableau de movie clip

faiblard

Dans le cas que tu donne je suis d'accord a la limite d'utiliser une variable car tu la réutilise plusieurs fois... Mais dans le cas présent la variable est totalement inutile, car tu ne la réutilise pas :) Je comprends tout a fais ce que tu raconte mais a la base je viens d'informatique industrielle donc si une variable est inutile (réutilisé qu'une fois bof bof...) on ne l'utilise pas car perte de place et de temps au niveau de procédé industrielle ca joue énormément... Il est vrai que le flash est moins contraignant car tu as le "temps" mais une variables que tu n'utilise pas plus d'une fois et tout de meme inutile... Plus lisible, c'est vrai mais si tu code souvent tu conviendra que les deux s'interprètent aussi vite pour un codeur moyen... Sinon je suis d'accord au niveau du typage qui est très important (je n'en mais pas dans l'aide car j'estime que le gars dois savoir le faire seul...) mais c'est un typage large a comparer au autres langage je trouve ^^ Sinon tu est chef de dévellopement flash a 22ans? pas mal... Ta pas une places de dispo des fois? :p
vendredi 25 mai 2007 à 13:34:30 | Re : Creer un tableau de movie clip

bali_balo

En d'autres termes "on se comprend"...


Par rapport aux "places de dispo", nôtre société recherche quelques stagiaires Flash (convetionné) de très bon niveau. Nous dévellopons des jeux en Flash et d'autres petites applications en AS2 sous Flash 8. Nous sommes à Paris dans le 11ème.

Si tu es intéressé, envoi moi CV+lettre de motivation.


bali_balo....=]

1 2

Cette discussion est classée dans : creer, tableau, clip, onpress, movie


Répondre à ce message

Sujets en rapport avec ce message

Appel de var d'un txt dasn un movie clip [ par Burnside ] Je n'arrrive pas a faire apparaître une variable qui se trouve dans un txt dans un movie clip.Merci,Burnside Gestion de plus de 1000 Movie Clip [ par ace5150 ] SalutJ'ai reçus comme projet la gestion de salle de spectacles avec réservation on-line de ticket. Jusque là pas de problème, lors de mes premier test Grille aléatoire sur movie clip [ par Burnside ] Bonjour,Je desirerai savoir comment l'on peut créer une grille vituelle dans un movie clip.Explication:J'ai un fichier Index.swf, qui load des autres Movie clip invisible [ par spider987 ] Voila je suis debutant en flash.Je vous explique ce que je souhaite realiser en deux mot :Bon je réalise un petit site en flashil y a un movie clip po un movieclip qui controle la scene principale... [ par phiphou ] Bonjour tout le monde...Voici mon pb :J'ai une scene principale, avec des boutons de navigation, et différents labels vers lesquels les boutons renvoi comment remplacer un movie clip par un autre avec un bouton [ par seed ] salut je voudrais reussi a changer un movie clip par un autre en utilisant un bouton j ai essayer un truc du genre on (release){_root.mon_clip=_root. A l'aide !!!! [ par sylvain78 ] Je me prend la tête avec un movie clip qui refuse une action !J'ai plusieurs scènes et de ce movie clip dans la deuxième scène je veux retourner sur u movie clip [ par FSYLV ] Bonjour et merci à l'avance.je souhaite creer une page de selection avec 20 images.que je puisse cliquer sur limage pour la diriger sur sa propre page Supprimer un movie clip [ par Stan62970 ] Salut a tsje ve supprimer un movie clip insséré depui la librairievoila ya pa grand chose a rajouter !merci d'avance(je c pa si c ds le bon theme ms c deplacement movie clip [ par Stan62970 ] Salut !chui en galére !je ve deplcé un movie clip par code !il fodré que je recrée l'evenment onClipEvent(EnterFrame)mais dans un layer (en gros)j'esp


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,530 sec (3)

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