Probleme de parenthese!!!!! j'y comprend rien.

Résolu
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009 - 19 févr. 2005 à 10:24
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009 - 20 févr. 2005 à 10:54
slt.
g vraiment du mal.
après les pbs de variables, les pbs de non affichage, et les pbs de lignes non exécutées (finalement résolus en les supprimant et en retapant exactement la meme chose), il me reste encore 2pbs:

-flash mx semble considérer que le point (0,0) se trouve non pas dans le coin de l'image, mais quelque part au dessus, à un endroit que j'estimerais à (150,-100) ou quelquechose comme ça.
-j'ai mis une longue formule mathématique, et au momant de vérifier le code, il m'affiche:
**Erreur** Séquence Séquence 1, calque Calque 1, image = 1 :Ligne 30 : ')' attendu
_root["a"+i] += Math.abs((((1,9891×10^30*m1*m)/(((_root["point"+i]._x-300)*1.5^8)^2))*6.67*10^-11)/(0.5mv^2))+Math.abs((((1,9891×10^30*m2*m)/(((d-(_root["point"+i]._x-300))*1.5^8)^2))*6.67*10^-11)/(0.5mv^2));


Total des erreurs ActionScript : 1 Erreurs signalées : 1

si je comprends bien, il manque une parenthese fermante. mais après les avoir recomptées plusieurs fois, je ne trouve pas qu'il en manque. existe-t-il une fonction de flash mx permettant de savoir quelle est la parenthese ouvrante correspondante???
le plus bizarre, c'est que juste en dessous, j'ai une formule similaire, faite avec un copier-coller de celle-ci, et qu'il n'y trouve pas d'erreur!(sauf que les x sont remplacées par des y et les a par des b)

quelqu'un peut-il m'aider?

12 réponses

ozitoun Messages postés 115 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 25 mars 2008
19 févr. 2005 à 11:26
pour l'histoire du point(0,0) c'est "normal"

en fait pour la racine _root de ton anim (0,0) se trouve bien en haut à gauche. Mais dés que tu es dans un movieclip, ton (0,0) se trouve là où tu l'as mis. Quant tu entre dans un movieclip il y a toujours une toute petite croix, le point de réf&érence du movieclip... et qui correspont aux coordonnées (0,0) du movieclip et de tout ce qui est dedans !

je continue à jetter un oeil pour l'histoire des parenthèses et te tiens au courant si je trouve qlqchose

Zitoun
3
MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 2
19 févr. 2005 à 19:14
salut aze...



j'ai trouvé des petites erreurs qui t'aurait posées probleme par la suite...



il s'agit de la division par (0.5mv^2) : là flash va comprendre
que tu parles de la variable mv et non pas 0.5*m*v^2 (détail qui fait
la différence !!!)



autre chose : lorsque tu fait des for :

il est plutot conseillé de mettre "i<<nb_points" à la place de
"i<nb_points" car dans les comparaisons( if, for et while),
l'element de comparaison est toujours double ( "= =", "<=",">=",
"!=", "<<" ou ">>")



sinon pour le (0,0) je viens d'avoir une idée :

dans ton dessin pour un point, veilles bien à ce que ton dessin du
point soit bien placé en (0,0) du clip. car si le point est pas en
(0,0), toute l'anim est décalée et ca donne l'impression que le (0,0)
du swf est ailleur. vérifie ca au cas ou....



sinon pour la parenthese, je te conseille de la redécomposer en opérations simples afin de mieux voir d'ou viens le probleme



@++




Mrdjack
3
ozitoun Messages postés 115 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 25 mars 2008
19 févr. 2005 à 10:54
effectivement ton nombre de parenthèses est la bonne... ça voudrais donc dire que dans le reste de ton action script de cette image il y a en amont une parenthèse ouverte qui n'est pas refermée

si tu panique, envoi l'action script en entier...

Zitoun
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
19 févr. 2005 à 11:14
merci.
je commençais à m'inquiéter sur ma capaciter à compter les parentheses.

j'ai regardé tout le script, et je n'ai pas trouvé de parenthese en trop.
voila le script entier:
var nb_points = 400;
var m1 = 1; //masse de la 1ere étoile en Mo
var m2 = 5; //masse de la 2eme étoile en Mo
var d = 100; //distance entre les 2 étoiles en Ua
var m = 6.65*10^.24; //masse d'un He, en Kg
var v = 10000; //vitesse d'éjection du gaz en m.s-1


for(var i=0;i<nb_points;i++){
_root["a"+i] = Math.cos(i*Math.PI/200);
_root["b"+i] = Math.sin(i*Math.PI/200);
}


for(var i=0;i<nb_points;i++) {
_root.attachMovie("point", "point"+i, i); //on duplique le symbole. Les points crées auront comme nom point0, point1,...
}


for(var i=0;i<nb_points;i++) {
_root["point"+i]._x = 300; //position en x
_root["point"+i]._y = 300; //position en y
}

setInterval(reposition, 50);


function reposition() {
for(var i=0;i<nb_points;i++) {
_root["point"+i]._x += _root["a"+i]; //position en x
_root["point"+i]._y += _root["b"+i]; //position en y
}
for(var i=0;i<nb_points;i++) {
_root["a"+i] += Math.abs((((1,9891×10^30*m1*m)/(((_root["point"+i]._x-300)*1.5^8)^2))*6.67*10^-11)/(0.5mv^2))+Math.abs((((1,9891×10^30*m2*m)/(((d-(_root["point"+i]._x-300))*1.5^8)^2))*6.67*10^-11)/(0.5mv^2));
_root["b"+i] += Math.abs((((1,9891×10^30*m1*m)/(((_root["point"+i]._y-300)*1.5^8)^2))*6.67*10^-11)/(0.5mv^2))+Math.abs((((1,9891×10^30*m2*m)/(((_root["point"+i]._y-300)*1.5^8)^2))*6.67*10^-11)/(0.5mv^2));
}
}

sinon, sais tu qqch pour mon pb de point (0,0) en dehors de l'image?
0

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

Posez votre question
ozitoun Messages postés 115 Date d'inscription mardi 1 juin 2004 Statut Membre Dernière intervention 25 mars 2008
19 févr. 2005 à 11:33
essaye ça.... mais j'y crois pas trop trop !!!

_root["a"+i] += (Math.abs((((1,9891×10^30*m1*m)/(((_root["point"+i]._x-300)*1.5^8)^2))*6.67*10^-11)/(0.5mv^2))+Math.abs((((1,9891×10^30*m2*m)/(((d-(_root["point"+i]._x-300))*1.5^8)^2))*6.67*10^-11)/(0.5mv^2)));
_root["b"+i] += (Math.abs((((1,9891×10^30*m1*m)/(((_root["point"+i]._y-300)*1.5^8)^2))*6.67*10^-11)/(0.5mv^2))+Math.abs((((1,9891×10^30*m2*m)/(((_root["point"+i]._y-300)*1.5^8)^2))*6.67*10^-11)/(0.5mv^2)));

Zitoun
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
19 févr. 2005 à 18:07
j'ai essayé, ça ne change rien.

pour le (0,0), comment faut-il faire pour le remettre en haut à gauche (sur l'image)?
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
19 févr. 2005 à 21:46
"sinon pour la parenthese, je te conseille de la redécomposer en opérations simples afin de mieux voir d'ou viens le probleme"

c'est à dire? revoir tout le calcul, voir à quoi sert chaque parenthese, et si elle est bien fermée? ça, je l'ai déja fait.
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
19 févr. 2005 à 22:12
ben j'ai fait ça, je ne sait pas si c'est ce que tu voulais dire:
var pm = 1.9891*10^30*m1*m;
var d2 = ((_root["point"+i]._x-300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm/d2);
var ec = 0.5*m*v^2;
var f1 = g/ec;
var pm = 1.9891*10^30*m2*m;
var d2 = ((d-_root["point"+i]._x+300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm2/d2);
var ec = 0.5*m*v^2;
var f2 = g/ec;
_root["a"+i] += Math.abs(f1)+Math.abs(f2);

var pm = 1.9891*10^30*m1*m;
var d2 = ((_root["point"+i]._y-300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm/d2);
var ec = 0.5*m*v^2;
var f1 = g/ec;
var pm = 1.9891*10^30*m2*m;
var d2 = ((_root["point"+i]._y-300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm/d2);
var ec = 0.5*m*v^2;
var f2 = g/ec;
_root["b"+i] += Math.abs(f1)+Math.abs(f2);

maintenant, flash mx n'ose plus trouver d'erreurs (il a peur que je le tape tellment j'e, ai mare)
mais plus rien ne s'affiche.
bouhouhouh.
est-ce du au grand nombre de commandes (maintenant, ça doit être assez long a executer)?
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
19 févr. 2005 à 22:12
ben j'ai fait ça, je ne sait pas si c'est ce que tu voulais dire:
var pm = 1.9891*10^30*m1*m;
var d2 = ((_root["point"+i]._x-300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm/d2);
var ec = 0.5*m*v^2;
var f1 = g/ec;
var pm = 1.9891*10^30*m2*m;
var d2 = ((d-_root["point"+i]._x+300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm2/d2);
var ec = 0.5*m*v^2;
var f2 = g/ec;
_root["a"+i] += Math.abs(f1)+Math.abs(f2);

var pm = 1.9891*10^30*m1*m;
var d2 = ((_root["point"+i]._y-300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm/d2);
var ec = 0.5*m*v^2;
var f1 = g/ec;
var pm = 1.9891*10^30*m2*m;
var d2 = ((_root["point"+i]._y-300)*1.5^8)^2;
var g = (6.67*10^-11)*(pm/d2);
var ec = 0.5*m*v^2;
var f2 = g/ec;
_root["b"+i] += Math.abs(f1)+Math.abs(f2);

maintenant, flash mx n'ose plus trouver d'erreurs (il a peur que je le tape tellment j'e, ai mare)
mais plus rien ne s'affiche.
bouhouhouh.
est-ce du au grand nombre de commandes (maintenant, ça doit être assez long a executer)?
0
MrdJack Messages postés 146 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 8 mars 2008 2
20 févr. 2005 à 00:02
dsl aze,

je ne voukais dire décomposer a ce point,

là il est clair que ca ne marche pas car le calcul doit etre fait
entierement dans la fonction reposition(). là flash ne peut pas
calculer F1 et F2 car beaucoup de variable lui sont inconues (elle sont
utilisables seulement dans la fonction reposition()



je m'explique : il est clair que ca donne de lourds calculs et le
diviser en deux trois lignes pour voir d'où viendrait l'erreur serait
pas trop mal....



par exemple j'ai vu que le calcul est constitué d'une somme de 2 Math.abs().



tu pourrais écrire ceci dans reposition :



_root["a"+i] += Math.abs((((1,9891×10^30*m1*m)/(((_root["point"+i]._x-300)*1.5^8)^2))*6.67*10^-11)/(0.5m*v^2))




_root["a"+i] += Math.abs((((1,9891×10^30*m2*m)/(((d-(_root["point"+i]._x-300))*1.5^8)^2))*6.67*10^-11)/(0.5m*v^2))




ce que je veux dire c'est que tu pourrais décomposer simplement tes
calculs comme ceci (sans trop abuser pour que ca tourne bien) et voir
pour chaque calcul effectué si ca va bien avec la fonction trace() pour
vérifier



ou encore comme la seule chose qui change entre les deux parties de
l'equation est seulement la masse, pourquoi ne pas faire une
factorisation ( ca alègerait les calculs et par la meme occasion le
temps d'execution



@++







Mrdjack
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
20 févr. 2005 à 10:33
je vais essayer comme ça, mais je ne peux pas factoriser: il y a aussi la distance qui change.

là flash ne peut pas calculer F1 et F2 car beaucoup de variable lui sont inconues (elle sont utilisables seulement dans la fonction reposition()

??? ça veut dire qu'il faut que je définisse les vaibles m1 ,m2, d, .... dans la fonction reposition, au lieu de les mettre en haut du script?
0
aze555666 Messages postés 208 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 26 janvier 2009
20 févr. 2005 à 10:54
ben en fait, c'est la même chose, sauf qu'il me trouve une ')' manquante sur chacune des 4 lignes.
0
Rejoignez-nous