Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3040 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  des anims sans timeline

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

des anims sans timeline

n°953901
freed102
Arayashiki
Posté le 16-01-2005 à 14:54:33  profilanswer
 

est-il possible avec flash (en se prenant bien le choux) d'animer des objets (deplacements entre autres) sans se servir de la timeline (physique) en ajoutant des images clefs etc etc... je veux dire juste un script sans objets physiques sur la timeline ?

mood
Publicité
Posté le 16-01-2005 à 14:54:33  profilanswer
 

n°954265
Mr Mala
Posté le 16-01-2005 à 23:18:01  profilanswer
 

oui .. enfin il te faudra au minimum UNE frame ! ..  
donc "sans timeline", non ...  
avec une timeline de 1 frame, oui ...


Message édité par Mr Mala le 16-01-2005 à 23:20:54
n°954452
freed102
Arayashiki
Posté le 17-01-2005 à 12:10:48  profilanswer
 

oui ça evidement ! lol ! faut bien mettre le code quelquepart ! lol
mais j'ai essayé un truc tout bete avec un carré qui suit la souris... et il me faut quand même 3 keyframes... je sais pas comment faire pour eviter ça !

n°954455
Mr Mala
Posté le 17-01-2005 à 12:18:18  profilanswer
 

heuuu c't'une blague ? :p
 
Frame 1 ( et unique frame de ton anim )

Code :
  1. this.onEnterFrame = function() {
  2. this.carre._x = this._xmouse;
  3. this.carre._y = this._ymouse;
  4. }
  5. stop();


.. en imaginant que ton carré est un movieclip appellé ... "carre" :D

n°954497
freed102
Arayashiki
Posté le 17-01-2005 à 13:18:54  profilanswer
 

ah ouaiiiiii c cool je viens d'essayer c'est top !
 
http://clonecopy.net/freed/essais_flash/index.php

n°954505
freed102
Arayashiki
Posté le 17-01-2005 à 13:30:39  profilanswer
 

.. vous pensez que je m'y prends bien pour le code ou c trop lourd ?  
 

Code :
  1. _root.createEmptyMovieClip("carre",0);
  2. carre.beginFill('0x000000',100);
  3. carre.lineStyle(1,'0xFFFFFF',100);
  4. carre.lineTo(0,0);
  5. carre.lineTo(100,0);
  6. carre.lineTo(100,100);
  7. carre.lineTo(0,100);
  8. carre.lineTo(0,0);
  9. carre.endFill();
  10. carre._alpha=100;
  11. this.onMouseDown = function()
  12. {
  13. xtarget=_root._xmouse;
  14. ytarget=_root._ymouse;
  15. xstart=carre._x;
  16. ystart=carre._y;
  17. }
  18.      this.onEnterFrame = function() {
  19. x=Math.abs(xstart - xtarget);
  20. y=Math.abs(ystart - ytarget);
  21. if(x>y){
  22. xspeed=5;
  23. yspeed=5*(y/x);
  24. }else{
  25. yspeed=5;
  26. xspeed=5*(x/y);
  27. }
  28. with(carre){
  29.  if(_x > (xtarget+2.5) || _x < (xtarget-2.5) ||_y > (ytarget+2.5) || _y <(ytarget-2.5))
  30.  {
  31.   this._alpha=50;
  32.   if(_x>xtarget)
  33.   {
  34.   _x = _x - xspeed;
  35.   }
  36.   else
  37.   {
  38.   _x = _x + xspeed;
  39.   }
  40.   if(_y>ytarget)
  41.   {
  42.    _y = _y - yspeed;
  43.   }
  44.   else
  45.   {
  46.    _y = _y + yspeed;
  47.   }
  48.  }
  49.  else
  50.  {
  51.  this._alpha=100;
  52.  }
  53. }
  54. carreX = getProperty(_root.carre, _x);
  55. carreY = getProperty(_root.carre, _y);
  56. pos_X.text = carreX;
  57. pos_Y.text = carreY;
  58. }
  59. _root.createTextField("txt_X",4,5,90,20,20);
  60. txt_X.multiline = true;
  61. txt_X.wordWrap = true;
  62. txt_X.border = false;
  63. Ftxt_X = new TextFormat();
  64. Ftxt_X.color = 0x000000;
  65. Ftxt_X.bullet = false;
  66. Ftxt_X.underline = false;
  67. _root.createTextField("txt_Y",5,5,120,20,20);
  68. txt_Y.multiline = true;
  69. txt_Y.wordWrap = true;
  70. txt_Y.border = false;
  71. Ftxt_Y = new TextFormat();
  72. Ftxt_Y.color = 0x000000;
  73. Ftxt_Y.bullet = false;
  74. Ftxt_Y.underline = false;
  75. _root.createTextField("pos_X",2,25,90,90,20);
  76. pos_X.multiline = true;
  77. pos_X.wordWrap = true;
  78. pos_X.border = true;
  79. pos_X.background = true;
  80. pos_X._alpha=50;
  81. Fpos_X = new TextFormat();
  82. Fpos_X.color = 0xff0000;
  83. Fpos_X.bullet = false;
  84. Fpos_X.underline = false;
  85. _root.createTextField("pos_Y",3,25,120,90,20);
  86. pos_Y.multiline = true;
  87. pos_Y.wordWrap = true;
  88. pos_Y.border = true;
  89. Fpos_Y = new TextFormat();
  90. Fpos_Y.color = 0xff0000;
  91. Fpos_Y.bullet = false;
  92. Fpos_Y.underline = false;
  93. carreX = getProperty(_root.carre, _x);
  94. carreY = getProperty(_root.carre, _y);
  95. txt_X.text = "X :";
  96. txt_Y.text = "Y :";
  97. pos_X.text = carreY;
  98. pos_Y.text = carreY;
  99. txt_X.setTextFormat(Ftxt_X);
  100. txt_Y.setTextFormat(Ftxt_Y);
  101. pos_X.setTextFormat(Fpos_X);
  102. pos_Y.setTextFormat(Fpos_Y);
  103. stop();


Message édité par freed102 le 17-01-2005 à 13:57:25
n°954568
Mr Mala
Posté le 17-01-2005 à 14:45:36  profilanswer
 

Bon histoire déjà de faire les choses dans le bon ordre :

Code :
  1. carre.lineStyle(1,0xFFFFFF,100);
  2. carre.moveTo(0,0);
  3. carre.beginFill(0x000000,100);
  4. carre.lineTo(100,0);
  5. carre.lineTo(100,100);
  6. carre.lineTo(0,100);
  7. carre.lineTo(0,0);
  8. carre.endFill();


 
En faisant ton beginFill() avant, tu risques un jour d'avoir des surprises !
 
Sinon pour le reste ... ben si ça roule comme ça, touche pas .. mais c'est clair qu'il y a 5000 façons d'écrire le truc ...

n°954576
freed102
Arayashiki
Posté le 17-01-2005 à 14:52:54  profilanswer
 

merci des conseils !
je voudrais savoir comment on concatene des noms de variables avec Actionscript ?
 
genre j'ai fait une fonction et une boucle :
voici la fonction :

Code :
  1. zindex=1;
  2. function MyCreateTextfield(name,zindex,x,y)
  3. {
  4. _root.createTextField(name,zindex,x,y,100,20);
  5. name.multiline = true;
  6. name.wordWrap = true;
  7. name.border = true;
  8. Fname = new TextFormat();
  9. Fname.color = 0x000000;
  10. Fname.bullet = false;
  11. Fname.underline = false;
  12. name.setTextFormat(Fname)
  13. zindex++;
  14. }


 
 
et voici la boucle :

Code :
  1. ystart=20;
  2. for(i=0,i>=10,i++)
  3. {
  4. var "essai"+i;
  5. MyCreateTextfield("essai"+i,zindex,10,ystart);
  6. "essai"+i.text="essai"+i;
  7. ystart+20;
  8. }


 
... mais je pense pas que ça marche comme ça pour creer des variables à la volée


Message édité par freed102 le 17-01-2005 à 14:54:03
n°954789
zbang
Posté le 17-01-2005 à 16:41:53  profilanswer
 

salut
 
pour la concatenation de tes var c'est ok
 
petit detail (voir plus haut) --> evite getProperty (deprecié depuis flash4) utilise plutot MovieClip._x et MovieClip._y

n°954807
freed102
Arayashiki
Posté le 17-01-2005 à 16:50:04  profilanswer
 

zbang a écrit :

salut
 
pour la concatenation de tes var c'est ok
 
petit detail (voir plus haut) --> evite getProperty (deprecié depuis flash4) utilise plutot MovieClip._x et MovieClip._y


 
bah la concatenation ça va pas :
 

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 22: Identifier expected
     var "essai"+i;
 
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 24: Left side of assignment operator must be variable or property.
     "essai"+i.text=concat("essai",i);
 
Total ActionScript Errors: 2   Reported Errors: 2

mood
Publicité
Posté le 17-01-2005 à 16:50:04  profilanswer
 

n°954822
zbang
Posté le 17-01-2005 à 16:56:29  profilanswer
 

point virgule?
 
for(i=0,i>=10,i++) --> for(i=0;i>=10;i++)

n°954827
zbang
Posté le 17-01-2005 à 16:58:46  profilanswer
 

tant qu'à faire essaye aussi comme ça :
["essai"+i].text="essai"+i

n°954843
freed102
Arayashiki
Posté le 17-01-2005 à 17:08:59  profilanswer
 

zbang a écrit :

tant qu'à faire essaye aussi comme ça :
["essai"+i].text="essai"+i


 
j'avais vu deja pour le for...  
quant a la concatenation...toujours la même erreur :
 

**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 24: Unexpected '.' encountered
     ["essai"+i].text="essai"+i;
 
**Error** Scene=Scene 1, layer=Layer 1, frame=1:Line 27: Unexpected '}' encountered
     }
 
Total ActionScript Errors: 3   Reported Errors: 3

n°954878
zbang
Posté le 17-01-2005 à 17:36:56  profilanswer
 

autant pour moi ... j'avais mal compris ... initialiser une var en concatenant --> je sais pas ( ça doit-etre possible mais comment? )
pour en revenir à ta boucle --> for(i=0,i>=10,i++)
à part les ; ... i>=10 ça va pas le faire non plus --> i<10

n°954881
freed102
Arayashiki
Posté le 17-01-2005 à 17:39:20  profilanswer
 

oui ça j'avais pas vu (puisque ma boucle n'a pas encore bouclé a cause de mon prob de creation de variable ! lol !
 
en tous cas ça je sais le faire en php :
 
 ${"mavariable"}="ma valeur";
 
mais en javascript ou en flash j'en ai aucune idée !

n°954968
Mr Mala
Posté le 17-01-2005 à 19:41:04  profilanswer
 

MC["essai"+i].text
MC est le nom de ton clip où tu as créé les objets ( dans le cas présent, _root["essai"+i].text )
 

n°955236
zbang
Posté le 18-01-2005 à 08:54:26  profilanswer
 

Mr Mala a écrit :

MC["essai"+i].text
MC est le nom de ton clip où tu as créé les objets ( dans le cas présent, _root["essai"+i].text )


 
ok ça ça a été déjà dit ... ce qu'il veut c'est initialiser à la volée des variables --> var "truc"+i
je vois pas l'intérêt remarque

n°955273
Mr Mala
Posté le 18-01-2005 à 10:04:24  profilanswer
 

zbang a écrit :

ok ça ça a été déjà dit ... ce qu'il veut c'est initialiser à la volée des variables --> var "truc"+i


 
Ce ne sont pas des "variables" ! "essai"+i est carément le nom de son objet textfield !
Et la seule solution c'est _root["truc"+i] ... et apparament, si ça a déjà été dit ICI, soit je l'ai loupé, soit "on" l'a effacé !
 
Dans son code ici,

Code :
  1. ystart=20;
  2. for(i=0,i>=10,i++)
  3. {
  4. var "essai"+i;
  5. MyCreateTextfield("essai"+i,zindex,10,ystart);
  6. "essai"+i.text="essai"+i;
  7. ystart+20;
  8. }


 
var "essai"+i; ne sert à rien .. et est faux d'ailleurs !
Il crée sont objet textfield ("essai"+i) et veut juste l'initialiser directement après l'appel de sa fonction de création !
Ce qu'il appelle "des variables à la volée" sont tout sauf des variables à la volée. ( dans le cas présent, ce ne sont pas des variables, ce sont carément des objets ). Il s'est planté dans sa nomenclature !


Message édité par Mr Mala le 18-01-2005 à 10:22:30
n°955293
zbang
Posté le 18-01-2005 à 10:30:51  profilanswer
 

je dis pas le contraire :)
 
mais ça reponds pas à la question ( enfin la mienne :D ) même si ça n'a pas grand intérêt --> penses-tu qu'on puisse initialisé des var "à la volée"?

n°955346
Mr Mala
Posté le 18-01-2005 à 11:22:42  profilanswer
 

Honnêtement, je ne me suis jamais posé la question car, comme toi, je n'y vois pas l'intérêt !
( et surtout, je ne considère pas ça comme très 'propre' )
 

n°955350
freed102
Arayashiki
Posté le 18-01-2005 à 11:36:51  profilanswer
 

Code :
  1. ystart=20;
  2. for(i=0;i<=10;i++){
  3. MyCreateTextfield(["essai"+i],zindex,10,ystart);
  4. _root["essai"+i].text="blablabla";
  5. ystart=ystart+20;
  6. trace(ystart);
  7. }


ça marche !! merci ! :jap:  
en effet une boucle ne sert à rien dans ce cas là... mais c t pour tester ma fonction savoir si elle est capable de reproduire des objets à la volée
 
Effectivement le terme "variable" n'etais pas approprié dans ce cas là.. cela dit je vais en avoir besoin aussi puisque je vais vouloir recuperer les valeurs de mes champs que je créé "à la volée" (ça va pas etre simple... Mais bon)
 
concernant la creation d'objet "à la volée" je vais vous expliquer mon interet : je veux que l'utilisateur puisse utiliser mon interface en placant des objet de façon illimitée sur l'ecran afin de construire une mise en page...
donc, chaque objet placé devra avoir des champs de propriété qui lui sont propre (x, y, police, couleur...) donc je veux a voir à faire juste un truc genre :

Code :
  1. monicone.onPress.function(){
  2. MyCreateEmptyTextField(monchamp,ma profondeur,mapositionX, mapositionY );
  3. }


et hop ! j'ai un nouvel objet sur ma page !
et mes objets qui auront les mêmes propriétés (TextFormat etc etcse creent avec une incrementation de +1
etcetc...) de plus je pourrai reperer mes objet avec le chiffre qui lui correspond.. je sais pas si c'est la bonne méthode mais bon... c celle qui me vient à l'esprit pour ce que je veux faire
 
voila à peu pres ! :)


Message édité par freed102 le 18-01-2005 à 11:42:12
n°955429
freed102
Arayashiki
Posté le 18-01-2005 à 14:09:35  profilanswer
 

et voila cela marche tres bien :
 

Code :
  1. _global.zindex=0;
  2. Fname = new TextFormat();
  3. Fname.color = 0x000000;
  4. Fname.bullet = false;
  5. Fname.underline = false;
  6. function MyCreateTextfield(field,zindex,x,y)
  7. {
  8. _root.createTextField(field,zindex,x,y,100,20);
  9. _root[field].multiline = true;
  10. _root[field].wordWrap = true;
  11. _root[field].border = true;
  12. _root[field].background = true;
  13. _root[field].setTextFormat(Fname);
  14. _global.zindex++;
  15. }
  16. ystart=10;
  17. for(i=0;i<=10;i++){
  18. MyCreateTextfield(["essai"+i],zindex,120,ystart);
  19. _root["essai"+i].text="blablabla"+i;
  20. ystart=ystart+20;
  21. trace(_global.zindex);
  22. }


 
et je me retrouve avec 10 champs alignés positionnés à y+20... c'est top !
 je vais pouvoir continuer !  :jap:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  des anims sans timeline

 

Sujets relatifs
Que pensez vous des anims de mon site ?[Flash - Html] carre blanc sous les anims au chargement...
Charger des anims 3D .x : j'aimerais qques expliquations générales 
Plus de sujets relatifs à : des anims sans timeline


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)