Problèmes origines de coordonnées qui ne change pas

Résolu
Signaler
Messages postés
33
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
9 août 2011
-
Messages postés
33
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
9 août 2011
-
Bonjour tout le monde

j'essaie de créer par as2 4 carrées qui s'affichent les un après les autres, mais les points d'origines ne se modifient pas ce qui fait qu'on a 4 traits avec une origine unique.
si quelqu'un(e) pouvait m'aider je lui serai reconnaissant.
merci d'avance.

var profondeur:Number=1;
var max:Number=4;
var i:Number=0;
function dessinecarre():Void
{
//abscisses des moveTo
var originex:Array=new Array();
originex[0]=35
originex[1]=45
originex[2]=50
originex[3]=60

var originey:Number=10;

//tableau de coordonnées des 4 carrés
var points:Array=new Array(4,8);

//coordonnées du 1er carré
points[0][0]=35;
points[0][1]=15;
points[0][2]=40;
points[0][3]=15;
points[0][4]=40;
points[0][5]=10;
points[0][6]=35;
points[0][7]=10;

//coordonnées du 2nd carré
points[1][0]=45;
points[1][1]=15;
points[1][2]=50;
points[1][3]=15;
points[1][4]=50;
points[1][5]=10;
points[1][6]=45;
points[1][7]=10;

//coordonnées du 3em carré
points[2][0]=50;
points[2][1]=15;
points[2][2]=55;
points[2][3]=15;
points[2][4]=55;
points[2][5]=10;
points[2][6]=50;
points[2][7]=10;

//coordonnées du 4em carré
points[3][0]=60;
points[3][1]=15;
points[3][2]=65;
points[3][3]=15;
points[3][4]=65;
points[3][5]=10;
points[3][6]=60;
points[3][7]=10;
this.createEmptyMovieClip("carre1",i+1);
with(carre1)
{
beginFill(0x000000,50);
moveTo(originex[i],10);
lineStyle(1,0x000000,50);
}
for (j=0; j<8; j++)
{
carre1.lineTo(points[i][j],points[i][j+1])
trace("i="+i)
trace("j="+j)
}
carre1.endFill()
if (i >= max)
{
clearInterval(moninter);
}
i++;
}
moninter=setInterval(this,"dessinecarre",1000);

5 réponses

Messages postés
465
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
Bonjour, pour ce qui est du constructeur, comme tu le fais en a2, je pourrais pas trop t'aider.mais je peux déja te dire que c'est tout faux.

for (j=0; j<8; j++){
carre1.lineTo(points[i][j],points[i][j+1])


ici tu vas lire chaque rang "j" de l'array , or c'est pas ce que tu veux, car tu dois incrémenter en "2*j"

for (j=0; j<(8/2); j++){
carre1.lineTo(points[i][2*j],points[i][(2*j)+1])


D'une facon générale je pense que tu peux faire bien plus simple, mais bon je te laisse chercher un peu
Messages postés
465
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
4 mai 2013
1
Bonjour, ton remplissage de tableau bidimensionnel n'est pas bon, voici la bonne facon:

var points:Array=new Array();
points[0]=[35,15,40,15,40,10,35,10];
points[1]=[45,15,50,15,50,10,45,10];
....

Personnellement j'obterais pour cette deuxième facon:

var points:Array=new Array(
[35,15,40,15,40,10,35,10],
[45,15,50,15,50,10,45,10],
...
);

Cordialement
Messages postés
33
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
9 août 2011

salut

merci pour ton coup de main.
je viens de tester ta méthode de tableau mais ça ne change riens
je continue à chercher.
merci encore
Messages postés
33
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
9 août 2011

salut

merci en tout cas c'est presque ça pour les 2 premiers

quand tu dis faire plus simple c'est au niveau de la boucle for ?
Messages postés
33
Date d'inscription
vendredi 2 mai 2003
Statut
Membre
Dernière intervention
9 août 2011

salut
bon ça finit par marché merci bien en tout cas
si je peux t'aider...
par contre il va falloir que je fasse plus simple comme tu dis