Problème avec texte dynamique

Résolu
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010 - 1 juil. 2009 à 19:13
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010 - 30 juil. 2009 à 09:16
Je suis dans Flash CS4, (donc AS3).
J'ai utilisé plusieurs fois des codes sources ici pour tenter d'afficher un score, mais en vain, il n'y a aucune erreur que repère Flash mais rien ne s'affiche.

Donc, est ce le même code pour AS3?
Et si oui, que dois-je faire?

Merci d'avance de vos réponses!

14 réponses

on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
3 juil. 2009 à 00:15
Bon, je vais t'expliquer le principe (enfin y en a peut-être d'autre mais c'est comme je vois les choses ) . Admettons qu'on a clipA , clipB, et myText (champ de texte dynamique) sur la scène. Et qu'on a bien renseigné leurs noms d'occurrences. On donne un startDrag à clipA et chaque fois qu'il touche clipB, on incrémente le score:
Ca donnera quelque-chose du genre:

var score:Number = 0;
//On initialise la variable score
myText.text = score;
//On passe la valeur de score au champ de texte
clipA.onMouseDown = function() {
    clipA.startDrag();
        if (clipB.hitTest(clipA)) {
        myText.text = score++;
//On incrémente le score
    }
}

@+.
3
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
3 juil. 2009 à 15:58
Bon, ben là je vois pas ce qui cloche si ce n'est que tu devrais plutôt coder sur l'image et créer des fonctions que dans le clip. Ton champ texte doit être nommé aussi dans les noms d'occurrences, et non dans la var. Vérifies chacune des étapes avec des trace, est-ce que le hitTest fonctionne correctement ? le random ? etc ... ?

@+.
3
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
1 juil. 2009 à 20:03
Salut,

Je pense que si tu nous mets ici le bout de code qui te pose problème tu augmenteras considérablement tes chances d'obtenir de l'aide.

@+.
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
2 juil. 2009 à 07:50
if (this.hitTest(_root.betrayal)){
_global.Pts=_global.Pts+1;
this._y=-100;
this._x=random(int(400));
_root.Score = " "+_global.Pts;
this.gotoAndPlay(2);

le this est un objet à récupérer (le principe étant un jeu où on bouge de gauche à droite évitant des obstacles et en récupérant des objets)
J'aimerai donc que j'affiche le score à un endroit précis, une zone que j'ai mis en texte dynamique et j'ai bien modifié le nom de l'occurrence.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
2 juil. 2009 à 16:42
Et si tu tace(Score) ça donne quoi ? Tu le récupères bien en sortie ?

@+.
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
2 juil. 2009 à 16:42
trace(Score); voulais-je dire ...

@+.
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
2 juil. 2009 à 18:52
Oui je le récupère bien en sortie. Voici ce que cela me donne : _level0.Score . Je fais essayer les codes avec cela au lieu de _root et je vous dit...
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
2 juil. 2009 à 18:54
Non, ça ne marche pas car _level0 n'est pas du code apparemment.
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
2 juil. 2009 à 19:11
Et tien, j'ai fait trace(Pts) (la variable qui monte les points) et cela me dit undefined.

Y a t-il une manipulation à faire pour déclarer une variable?
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
3 juil. 2009 à 08:13
Voici mon nouveau code :

onClipEvent (enterFrame) {
var Pts:Number = 0;
Score.text = Pts;
this._y=this._y+3;
if (this._y>=400){
this._y=-100;
this._x=random(int(350));
}
if (this.hitTest(_root.betrayal)){
this._y=-100;
this._x=random(int(400));
Score.text = Pts++;
this.gotoAndPlay(2);
}
}

Cela ne marche toujours pas :/ Que sont mes possibles erreurs? Sachant que j'ai vérifié et revérifié mes occurences...
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
5 juil. 2009 à 14:15
Je vais regarder tous ça et nettoyer un peu et organiser mes occurences etc, puis je te dit si j'ai réussi à trouver ce qui cloche.
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
5 juil. 2009 à 18:38
Voilà j'ai un peu trifouiller et j'ai trouvé pourquoi ça ne marchait pas : je n'avais pas mis le script sur le calque du texte dynamique :/

Maintenant je me heurte à un (nouveau) problème : il affiche bien la valeur décidé au début (0), mais la condition ne marche pas (il ne reconnait plus que les deux occurrences se touchent).

Voici mon code : j'imagine il y a une manière d'insérer une fonction (dans ce cas voir si il touche pour monter le score) mais je ne sais pas quel est le code avec AS.

var Pts:Number = 0;
Score.text = Pts;

//La canette
if (Canette.hitTest(_root.betrayal)){
Pts = Pts++;
Score.text = Pts;
Canette._y=-100;
Canette._x=random(int(400));
Canette.gotoAndPlay(2);
}
0
on_drag_on Messages postés 1236 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 6 octobre 2010
6 juil. 2009 à 09:17
Il faut mettre ta condition dans la fonction qui est censée faire bouger ton clip qui doit toucher(ou non) les canettes ... si je reprend mon exemple d'avant, j'ai un clipA qui bouge lors d'un onMouseDown:

clipA.onMouseDown = function() {
        clipA.startDrag();
        if (clipB.hitTest(clipA)) {
        //code ...
}

@+.
0
cs_Yrael Messages postés 29 Date d'inscription mercredi 1 juillet 2009 Statut Membre Dernière intervention 4 juillet 2010
30 juil. 2009 à 09:16
C'est bon réussite! ^^

J'ai refait un fichier .fla et tout mis sur le même calque ce n'était que ça le problème (habitué à Photoshop j'avais bien séparé tous mes objets sur des calques définis)

Merci à toi pour ton aide qui a été précieuse et m'a appris pas mal de trucs :)
0
Rejoignez-nous