Forums Développement Multimédia

Aller au contenu

[b]Besoin d'aide : récupérer variable & Array d'un clip à l'autre[/b]

erreur var array clip AS3 CODE Actionscript

4 réponses à ce sujet

#1 Gouj

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 02 July 2013 - 14:58 PM

Bonjour à tous,

Je suis actuellement sur un projet de quizz type drag & drop et je me retrouve face à un petit problème que je n'arrive pas à résoudre...
  • La situation
dans mon clip principale (quizz) J'ai une grille avec des zones de réponse, des logos à placer sur la bonne zone , ... tout fonctionne nichel chrome !

j'ai également un bouton "correction" qui permet d'afficher un autre clip où sont rangé au bon endroit mes logos (lors de l'affichage de se clip les logos "dragables" se cachent)

mais pour finaliser ce projet je doit créer un bouton "vérifier" qui (si le logo est dans la bonne zone) aura pour action de le placé à la même position que celle du même logo de la correction ( pour éviter les mouvements bizarre et rapide lors de l'affichage de la correction) et c'est la que ça coince (à moitier :D)
  • Le problème
Dans mon clip "correction" j'ai 2 liste/tableau de données Array qui récupère l'intégralité des valeurs x et y de mes logos :


var correc_xArray:Array = [logo_1.x, logo_2.x, logo_3.x, logo_4.x, .... ];
var correc_yArray:Array = [logo_1.y, logo_2.y, logo_3.y, logo_4.y, ....];
 

Ces données sont indispensables car elles vont me permettre de faire une boucle for et de matcher ma position avec celle de la correction si elle est sur la bonne zone...

quand je trace dans mon clip correction mes 2 array j'obtient bien une suite de nombre pour mes x et mes y ! donc tout va bien ...

sauf que pour faire "matcher" la chose je dois récupérer ces valeur de mon clip "correction" à mon clip "quizz" ... et la c'est un problème !

j'ai essayé dans mon clip quizz un :

trace(MovieClip(root).correc_xArray) ;
trace(MovieClip(root).correc_yArray) ;
 
mais aussi :

trace(MovieClip(parent).correc_xArray) ;
trace(MovieClip(parent).correc_yArray) ;
 
ou encore :

trace(parent.correc_xArray) ;
trace(parent.correc_yArray) ;
 
....

mais le module de sortie me sort soit "undifined" ou "null"

Avez vous une solution pour que je récupère ces valeurs ?



a terme ma boucle for ressemblera à ça (si je trouve le moyen de faire le transfert d'un clip à l'autre)


for(var i:int = 0; i < dragArray.length; i++) {
if(dragArray[i].hitTestObject(matchArray[i])==true)
{
//match was made, so send the clip to the correct position

dragArray[i].x = MovieClip(parent).correc_xArray[i];//avec la correction qui fonctionne
dragArray[i].y = MovieClip(parent).correc_yArray[i];//avec la correction qui fonctionne
}

else {
//match was not made, so send the clip back where it started:
dragArray[i].x = xArray[i];
dragArray[i].y = yArray[i];
}
}

 


Voili voilou, ... J'espère que vous pourrez m'aider.



Merci d'avance ! et Bonne fin de journée à tous !

#2 eKimiya

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 423 messages

Posté 02 July 2013 - 15:23 PM

Salut !

Tu dis que ton clip principal est "quizz", du coup je comprend que c'est ce clip qui contient un clip "correction" ?
Du coup il faudrait plutôt faire l'inverse, non pas :

trace(MovieClip(root).correc_xArray) ;
trace(MovieClip(root).correc_yArray) ;
 

mais :

trace(correction.correc_xArray) ;
trace(correction.correc_yArray) ;
 

Non ? Ou alors j'ai mal compris quelque chose :)

#3 Gouj

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 02 July 2013 - 15:44 PM

Si tu as bien compris le clip "correction" est dans le clip "quizz"

j'avais déjà essayé sous cette forme :

trace(correction.correc_xArray) ;
trace(correction.correc_yArray) ;
 


en sortie j'ai : "erreur accès à une propriété non définie correction" ...

j'ai tester plusieurs forme (dont celle avec MovieClip(root) car je me suis dit on en sais jamais ...) mais cela reste sans résultat concluant ...

normalement dans mes autre projet j'utilisai


MovieClip(parent).correc_xArray
 



mais là cela ne fonctionne pas ...

#4 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6954 messages

Posté 02 July 2013 - 15:55 PM

Citation

Avez vous une solution pour que je récupère ces valeurs ?

Eviter de mettre du code dans des clips, ou alors faire des classes...
La gestion des chemins et existence de valeurs quand tu imbrique le code dans des clips est juste une horreur.
Il faut donc s'en passer et gérer tout le code depuis la racine en ciblant les enfants dans les clips, ou bien faire des classes.

#5 Gouj

    Ceinture Jaune

  • Members
  • PipPip
  • 26 messages

Posté 02 July 2013 - 16:36 PM

bon j'ai trouvé une solution au lieu de passer en "lecture" je passe en "envoi" et ça marche :

ma solution au lieu que dans mon clip quizz j'ai mon Array qui va chercher les valeur de mon Array correction

c'est l'inverse le clip correction envoi ces valeurs vers Array quizz ...

un simple MovieClip(parent) Et cela fonctionne au poil !

Merci pour vos réponses



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP