Controler les clips

Résolu
Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005 - 22 août 2005 à 17:57
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 - 16 sept. 2005 à 17:35
Bonjour à tous,
Je débute sur Flash, et j'ai donc besoin de l'avis éclairé de plus expérimentés que moi...
Mon projet consiste à réaliser une animation de tennis à partir de données d'un fichier texte.
Ce txt comporte des variables telles que les positions successives des joueurs, de la balle (vitesse, hauteur, ...), et des coups joués.
Dans mon projet, chaque coup, tel un revers joué par le joueur de dos, correspond à un movie clip. J'ai donc autant de movie clips que de coups différents, multiplié par 2 (joueur de dos + joueur de face).
Je n'ai pas de problème pour charger les données du fichier texte. Le chargement se fait dans le calque supérieur, appelé "actions".
Comme je veux vérifier que les données sont chargées entièrement, je charge les données du txt dans l'image 1, je teste dans l'image 2. Si OK, je passe a la 3, sinon je reviens a la 1. Ca, ca marche bien.
Maintenant la question que je me pose, c'est où et comment controler mes différents clips, sachant que dans mon image 3, je constitue différents tableaux de variables, correspondant aux actions devant être réalisées par le joueur de face, le joueur de dos, et la balle.
Je ne sais pas où mettre mes instances de clips (sur 3 calques ? joueur_dos, joueur_face et balle ?) ni ou je dois controler ces clips. Une boucle de controle serait appropriée, du genre, tant que mon tableau a encore des données, joueur le clip correspondant, mais ce que je tente ne fonctionne pas.
Pourriez-vous m'éclairer s'il vous plait ?
Merci beaucoup.

29 réponses

Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005
31 août 2005 à 11:50
autant pour moi pour la boucle...
Je n'arrive toujours pas a encjainer les clips. Voici ce que j'ai fait :

Scene :
txt = new LoadVars();
txt.onLoad= function (pSuccess) {
if (pSuccess) {
charger_tableaux(); // fct pour charger le tableau mesActions
indexAction=0;
action_suivante(); // fct pour passer au clip suivant
}
}

txt.load("import.txt");

function action_suivante() {

_global.action = mesActions[indexAction]["action"];
_global.clipjoue=action;
trace("clipjoue = " + clipjoue);
_root.joueur1.executer(); // appel de la fct pour joueur le clip
}

function charger_tableaux() {
... // marche bien
}

*******************

clip joueur1 :

Image 1 (contient clip "D_avant_service_droite") :
Stop();

// EXECUTER
function executer() {
fin_clip=false;
init_pos(); // initialiser les positions x et y du clip avec données recues
onEnterFrame = function() {
//trace(fin_clip);
deplacer();
if (fin_clip==true){
delete onEnterFrame;
this[clipjoue].stop();
}
}
}

function init_pos(){
... // marche bien
}

// fonction pour déplacer le clip de course du joueur
function deplacer() {
... // marche bien
// fin_clip=true lorsque le déplacement est fini
}

}

******************************

Lorsque je rappelle action_suivante() après le stop() de l'image1 de joueur1, il n'y passe pas (et pour cause)... Le clip suivant est dans l'image 2 du clip joueur1
Donc je ne vois pas où il faut faire cet appel.

J'ai une deuxième question sur l'interface de Flash cette fois-ci. J'ai positionné un clip sur la scene. Quand je clique sur l'instance de MC, il y a un petit rond et une petite croix, qui semblent représenter la position relative du MC. Du coup quand je déplace le MC, je déplace en meme temps ce petit rond, et ca me fout la grouille dans mes coordonnées. A quoi sert ce rond ?

Merci Benjy.
Thierry
0
Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005
31 août 2005 à 17:16
Merci pour ta réponse Benjy
j'avais bien fait les essais en mettant le rappel de action_suivante en dessous de this[clipjoue].stop(); par contre, j'avais mis _root et non _parent (ce qui doit revenir au même puisqu'on vise le même niveau).
En tous cas ca ne marche toujours pas, meme avec parent.
La deuxième fois que je passe dans action_suivante, clipjoue contient bien "D_avant_service_gauche" qui est le 2eme clip à lire.
Mais dans les fonctions executer(), init_pos() et deplacer(), this[clipjoue] est undefined la 2eme fois.
Est-ce que cela vient du fait que le 2eme clip que j'appelle se trouve sur l'image 2 du clip joueur1 (alors que mon 1er clip se trouve sur l'image 1) ? Pour info, j'ai mis un stop() sur l'image 1 et l'image 2 de joueur1.
Thierry
0
Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005
1 sept. 2005 à 16:41
Merci Benjy, ca marche mieux comme ca. Maintenant j'arrive à enchainer les clips, sauf que même en mémorisant les positions d'arrivée du clip N, et en les reprenant pour les positions de départ du clip N+1, il y a un décalage !
Pourtant en traçant les valeurs, mes positions sont exactes, donc le clip N+1 devrait repartir de là où est arrivé le clip N.
Est ce que cela peut venir de l'interface flash (petite croix et petit rond notamment) ?
0
Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005
16 sept. 2005 à 11:33
Salut Benjy,
de retour de vacances, et donc avec les idées claires, j'ai toujours ce décalage sur l'axe Y. J'utilise la méthode d'affectation directe, en fin de fonction de déplacement : departX1=this[clipjoue]._x et departY1=this[clipjoue]._y puis this[clipjoue]._x=departX1 et this[clipjoue]._y=departY1 dans l'initialisation du prochain déplacement. En traçant toutes ces infos, j'ai bien les nombres voulus. Donc je ne vois pas pourquoi ca ne marche pas. Le deuxième clip redémarre au bon x, mais pas au bon y (qui est même en dehors de la scène, alors que je suis en Y=160).
D'autre part, je voulais savoir qu'elle était la meilleure méthode à utiliser pour que, une fois que tous les clips ont été joués, l'animation s'arrête proprement (dernier clip joué rendu statique).
Merci
Thierry
0

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

Posez votre question
Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005
16 sept. 2005 à 15:06
OK, mais alors comment je change ce centre de gravité ?
Thierry
0
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
16 sept. 2005 à 15:31
Salut

bibliothèque > propriete
clip, le carré composé de petit carré blanc et un noir, cliquer sur le
petit carré blanc en haut a gauche

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
0
Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005
16 sept. 2005 à 16:56
Je ne vois pas où est ce carré composé d'un carré blanc et d'un noir. Est-ce dans Symbol Properties du clip, à partir de la bibliothèque ?
0
Thierry92psg Messages postés 16 Date d'inscription mercredi 17 mars 2004 Statut Membre Dernière intervention 16 septembre 2005
16 sept. 2005 à 17:29
Non, ca ne marche toujours pas, j'ai toujours ce décalage entre mes clips, alors que j'ai 0 dans X et 0 dans Y (selon ta procédure). Le premier décalage, entre le clip 1 et 2 est vers le bas, le second, entre le clip 2 et 3, est vers le haut. Le X a l'air d'être bien sauvegardé, mais pas le Y...
0
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
16 sept. 2005 à 17:35
Salut

ben je sais pas ... va falloir que tu cherche moi j'ai plus d'idées

Flash sans Limites
_Benjy chez kOlapsis

merci de penser a accepter
0
Rejoignez-nous