Flash AS

Résolu
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006 - 12 nov. 2006 à 16:44
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006 - 17 nov. 2006 à 22:05
Alors je vous presente mon probleme.
Je veux deplacer mon perso et qu'il se remette de face a chaque fois que l'on relache les fleches car la sur mon code lorsque l'on relache la fleche il reste en direction de la ou il aller, il s'arrete mais il reste de profil j'aimerais qu'il se remette de face quand on la relache
voila mon code

onClipEvent (enterFrame) {
 _root.anim._x = this._x;
 _root.anim._y = this._y;
 if (Key.isDown(Key.LEFT) && !Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
  if (!_root.cadre.hitTest(_x-_width/2, _y-_height/2, true) && !_root.cadre.hitTest(_x-_width/2, _y+_height/2, true)) {
   _x -= 5;
   _root.anim.gotoAndStop("left");
  }
 } else if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
  if (!_root.cadre.hitTest(_x+_width/2, _y-_height/2, true) && !_root.cadre.hitTest(_x+_width/2, _y+_height/2, true)) {
   _x += 5;
   _root.anim.gotoAndStop("right");
  }
 }
 if (Key.isDown(Key.UP)) {
  if (!_root.cadre.hitTest(_x+_width/2, _y-_height/2, true) && !_root.cadre.hitTest(_x-_width/2, _y-_height/2, true)) {
   _y -= 5;
   _root.anim.gotoAndStop("up");
  } else {
   _root.anim.gotoAndStop("inactive");
  }
 } else if (Key.isDown(Key.DOWN)) {
  if (!_root.cadre.hitTest(_x+_width/2, _y+_height/2, true) && !_root.cadre.hitTest(_x-_width/2, _y+_height/2, true)) {
   _y += 5;
   _root.anim.gotoAndStop("down");
   
  }
 }
}

42 réponses

kadolodai2 Messages postés 79 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 29 novembre 2006
13 nov. 2006 à 02:17
là tu lui as bien dit quoi faire quand t'appuis, mais il faudrait me semble t il lui dire quoi faire lorsque que tu n'appuis plus.
tu avais deja la reponse mais pas au bon endroi. j'ai juste modifié 2 3 trucs
un >> if (Key.isDown(Key.UP)) {... qui deviens else if pour continuer sur le Si c'est pas toi c'est peut etre le suivant...
et >> else {
   _root.anim.gotoAndStop("inactive");
  }  placé en bout de la chaine de else if... et ça fonctionne :)

bonne nuit
Kado
:D

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
onEnterFrame = function ()
{
 _root.anim._x = this._x;
 _root.anim._y = this._y;
 //
 //
 //
 if (Key.isDown(Key.LEFT) && !Key.isDown(Key.UP) && !Key.isDown(Key.DOWN))
 {
  if (!_root.cadre.hitTest(_x - _width / 2, _y - _height / 2, true) && !_root.cadre.hitTest(_x - _width / 2, _y + _height / 2, true))
  {
   _x -= 5;
   _root.anim.gotoAndStop("left");
  }
  // 
  //
  //
 }
 else if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP) && !Key.isDown(Key.DOWN))
 {
  if (!_root.cadre.hitTest(_x + _width / 2, _y - _height / 2, true) && !_root.cadre.hitTest(_x + _width / 2, _y + _height / 2, true))
  {
   _x += 5;
   _root.anim.gotoAndStop("right");
  }
  // 
  //
  //
 }
 else if (Key.isDown(Key.UP))
 {
  if (!_root.cadre.hitTest(_x + _width / 2, _y - _height / 2, true) && !_root.cadre.hitTest(_x - _width / 2, _y - _height / 2, true))
  {
   _y -= 5;
   _root.anim.gotoAndStop("up");
  }
/*
  else
  {
   _root.anim.gotoAndStop("inactive");
  }
*/
  //
  //
  //
 }
 else if (Key.isDown(Key.DOWN))
 {
  if (!_root.cadre.hitTest(_x + _width / 2, _y + _height / 2, true) && !_root.cadre.hitTest(_x - _width / 2, _y + _height / 2, true))
  {
   _y += 5;
   _root.anim.gotoAndStop("down");
  }
 }
 else
 {
  _root.anim.gotoAndStop("inactive");
 }
};

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
3
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
13 nov. 2006 à 14:13
J'ai trouvé j'ai mal formulé je passe le code au cas ou quelqu'un est dans le meme cas que moi ^^

on (keyPress "&") {
 this._parent.anim.perso.corps.mood.gotoAndStop("triste");
}
3
kadolodai2 Messages postés 79 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 29 novembre 2006
13 nov. 2006 à 22:11
nextFrame();//methode MovieClip
tu sais je veux pas faire le rabas joie mais ya aussi une aide bien fournie avec flash, l'assistant de code est cool, les classes sont bien classés et F1 te donne toutes les infos necessaires... enfin je dis ca mais je dis rien...
a+
Kado
3
kadolodai2 Messages postés 79 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 29 novembre 2006
14 nov. 2006 à 12:22
erreur de ciblage...
astuce:
trace(eval(this._target));

tu mets ca dans un clip dont tu cherches le chemin et pof il te le donne...
3

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

Posez votre question
kadolodai2 Messages postés 79 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 29 novembre 2006
16 nov. 2006 à 09:32
/////sans bouton/////////////////////////////////////////////////////////////////////

//creation du textfield de saisie
_root.createTextField("saisie_txt", 99, 10, 10, 300, 20);
_root.saisie_txt.border = true;
_root.saisie_txt.multiline = false;
_root.saisie_txt.type = "input";

//creation du textfield d'affichage
_root.createTextField("affichage_txt",100, 10, 40, 300, 20);
_root.affichage_txt.border = true;
_root.affichage_txt.multiline =true;
_root.affichage_txt.type ="dynamic";

//evenement sur le textfield de saisie
saisie_txt.onChanged= function()
{affichage_txt.text=saisie_txt.text;}

////avec bouton/////////////////////////////////////////////////////////////////////////////

_root.createTextField("saisie_txt", 99, 10, 10, 300, 20);
_root.saisie_txt.border = true;
_root.saisie_txt.multiline = false;
_root.saisie_txt.type = "input";
_root.createTextField("affichage_txt",100, 10, 40, 300, 20);
_root.affichage_txt.border = true;
_root.affichage_txt.multiline =true;
_root.affichage_txt.type ="dynamic";
//creation du bouton
_root.createEmptyMovieClip("monBouton",101);
_root.monBouton._x=320;
_root.monBouton._y=10;
_root.monBouton.lineStyle();//style de la ligne indefinie=pas de tracer de ligne de contour
_root.monBouton.beginFill(0x990000);//par contre remplisage en rouge #990000
_root.monBouton.moveTo(0,0);
_root.monBouton.lineTo(20,0);
_root.monBouton.lineTo(20,20);
_root.monBouton.lineTo(0,20);
_root.monBouton.lineTo(0,0);
_root.monBouton.endFill();
//action monBouton
_root.monBouton.onRelease=function(){
_root.affichage_txt.text=_root.saisie_txt.text;}

bonne journée
Kado
3
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
16 nov. 2006 à 19:35
_root.saisie_txt.multiline = false;
_root.saisie_txt.type = "input";
_root.affichage_txt.multiline = true;
_root.affichage_txt.type = "dynamic";
// action monBouton
_root.monBouton.onRelease = function() {
 _root.affichage_txt = _root.saisie_txt;
};

j'ai créé un champ de saisie de nom saisie_txt et de meme pour le recipient affichage_txt et sa marche je n'ai plus qu'a trouvé encore deux chose sur ce domaine comment aller a la ligne dans un new message
3
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
17 nov. 2006 à 15:48
// //avec bouton/////////////////////////////////////////////////////////////////////////////
/*_root.createTextField("saisie_txt", 99, 10, 10, 300, 20);
_root.saisie_txt.border = true;*/
_root.saisie_txt.multiline = false;
_root.saisie_txt.type = "input";
/*_root.createTextField("affichage_txt", 100, 10, 40, 170, 350);
_root.affichage_txt.border = true;*/
_root.affichage_txt.multiline = true;
_root.affichage_txt.type = "dynamic";
// action monBouton
_root.monBouton.onRelease = function() {
 {
  //triste
  if (saisie_txt == "triste") {
   this._parent.anim.perso.corps.mood.gotoAndStop("triste");
   
  } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   //yo
   if (saisie_txt == "^^") {
   this._parent.anim.perso.corps.mood.gotoAndStop("yo");
   
   } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   // ;)
   if (saisie_txt == ";)") {
   this._parent.anim.perso.corps.mood.gotoAndStop("clindoeil");
   
   } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   // yo
   if (saisie_txt == "yo") {
   this._parent.anim.perso.corps.mood.gotoAndStop("yo");
   
   } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   //triste
   if (saisie_txt == ":(") {
   this._parent.anim.perso.corps.mood.gotoAndStop("triste");
   
   } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   if (saisie_txt == "XD") {
   this._parent.anim.perso.corps.mood.gotoAndStop("xd");
   
   } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   if (saisie_txt == ":|") {
   this._parent.anim.perso.corps.mood.gotoAndStop("gloup");
   
   } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   if (saisie_txt == ":s") {
   this._parent.anim.perso.corps.mood.gotoAndStop("gloups");
   
   } else {
   this._parent.anim.perso.corps.mood.gotoAndStop("normal");
   } 
   _root.affichage_txt = _root.saisie_txt;
   }
   saisie_txt = "";
};

VOILA SA MARCHE J AI MODIFIE MES CHEMINS SACHANT QUE BEAUCOUPS DE MES ERREURS DEPUIS LE DEBUT SONT LE CHEMIN DONC SA MARCHE.
J AIMERAIS MAINTENANT SAVOIR COMMENT FAIRE EN SORTE A CE QUE LE DEUXIEME MESSAGE NE REMPLACE PAS LE PREMIER ET ETC.....
http://f.bateman.free.fr/flkode/newconcept.swf 
MEERRCCII!!!
3
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
13 nov. 2006 à 10:19
Merci beaucoup!! sa marche :D
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
13 nov. 2006 à 11:10
deuxieme questions : j'aimerais savoir sur le meme principe comment atteindre une image dans un clip:

j'ai mon perso qui est un clip et dans ce clip il il y en a d'autre.

J'ai placé ce code sur un clip sur la scene1 sur un clip sans importance (créé pour porter l'action):

on (keyPress "&") {
 _root.anim.perso.corp.mood.gotoAndStop("triste");
}

 mais il ne se passe rien
merci ^^
0
kadolodai2 Messages postés 79 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 29 novembre 2006
13 nov. 2006 à 11:22
je sais pas trop.

un petit trace pour voir si ton code est lu avant tout...

on (keyPress "&") {
trace("donc le probleme est bien dans la ligne suivante");
 _root.anim.perso.corp.mood.gotoAndStop("triste");
}

sinon c'est peut etre un probleme de ciblage de ton clip?!
parceque comme ça c correct, donc peut etre as tu une erreur dans ton chemin, fait gaffe à la casse. Un debug peux te permettre de voir tes clips lors de l'execution et connaitre le bon chemin.

bonne journée
Kado
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
13 nov. 2006 à 14:44
bon afin de perfectionner mon ptit travail je voudrais savoir comment faire pour : faire, atteindre le meme resultat mais de maniere differente c'est a dire en entrant un mot dans un champ de texte et qui fasse si le mot correspond a trsite le chemin this._parent.anim.perso.corps.mood.gotoAndStop("triste");

bref un champ de texte, on entre un mot, si il existe si je l'ai repertorié (je ne sais comment) il execute le chemin et fait apparaitre l'emotion triste sur le perso

merci :)
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
13 nov. 2006 à 21:17
voila j'ai mit au point ce code :
 
on (release) {
 if (texte == "triste") {
  this.anim.perso.corps.mood.gotoAndStop("triste");
 } else {
  this.anim.perso.corps.mood.gotoAndStop("normal");
 }
 texte = "";
}

ce code est sur un bouton et j'ai a coté de ce bouton un champ de saisie avec var=texte dans ses propriétés  mais il ne se passe rien quand je clik sur le bouton :(

quel est le probleme?
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
13 nov. 2006 à 21:17
voila j'ai mit au point ce code :
 
on (release) {
 if (texte == "triste") {
  this.anim.perso.corps.mood.gotoAndStop("triste");
 } else {
  this.anim.perso.corps.mood.gotoAndStop("normal");
 }
 texte = "";
}

ce code est sur un bouton et j'ai a coté de ce bouton un champ de saisie avec var=texte dans ses propriétés  mais il ne se passe rien quand je clik sur le bouton :(

quel est le probleme?
0
kadolodai2 Messages postés 79 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 29 novembre 2006
13 nov. 2006 à 21:37
si tu as un conteneur montexte (textField) avec comme nom d'occurence texte, le contenu texte de ton conteneur est ici: montexte.text=="triste"
regarde les methodes et propriétés de textField

sinon et je pense que ton probleme viens de la. Tu cibles mal ta variable texte.
si ton champ de saisie est sur l'anim principale met _root.texte surtout si le code est dans un clip ou un bouton.
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
13 nov. 2006 à 21:46
Sa marche ^^ ! bon pour faciliter l'utilisation de ma créa j'aimerais savoir comment faire pour faire defiler, pour passer a l'image suivante en clcquant sur un bouton on fait comment ?? on clik et hop sa passe a l'image suivant
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
14 nov. 2006 à 11:29
Ok merci beaucoup je poserais la question apres avoir chercher avant ^^
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
14 nov. 2006 à 11:33
sa marche lorsque je le place dans le clip dans lequel se trouve les frames mais lorsque je le place sur la scene et que je mes

on (release) {
 _root.anim.perso.corps.chapeau.nextFrame();
 // methode MovieClip
}
 sa ne marche plus
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
14 nov. 2006 à 12:23
j'ai trouve je me suis déboruillé en revanche la j'ai cherché mais je n'arrive pas a augmenter ou a diminuer par 10 la valeur alpha de mon clip j'ai fais ce code

on (release) {
 corp._alpha = +10;
}
 et sur le bouton qui diminu par 10

on (release) {
 corp._alpha = -10;
}

mais sa m'amene directement a alpha =10 ou -10 au lieu de diminuer de 10 par rapport a 100

que dois-je changer?
merci
0
kadolodai2 Messages postés 79 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 29 novembre 2006
14 nov. 2006 à 12:27
lol faut revoir tes bases.... alpha += 10;
toi tu lui as dit que alpha est egal a +10 donc 10
0
gozila Messages postés 38 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 30 novembre 2006
14 nov. 2006 à 13:03
non sa marche pas sa donne bien sa ?

on (release) {
 corp._alpha + = 10;
}

on (release) {
 corp._alpha -= 10;
}
0
Rejoignez-nous