2010-09-17 28 views
0

J'ai un gros code ici ... Mais heureusement, il n'est pas nécessaire d'être mentionné du tout. Cela revient à quelque chose qui ... échoue? Donc, à la fin, cela est supposé dessiner deux triangles (en utilisant AS3 Graphics). Cela fonctionne bien avec un, mais quand je mets une seconde là, ça a l'air bizarre. Je trace débogués, et je pense que le bug est dans Graphics - c'est ma sortie pour les points réels tirés:Graphiques - bug chevauchant ou quoi?

DRAW 
- POINT (50 , -50) 
- POINT (-50 , 50) 
- POINT (50 , 50) 
DRAW 
- POINT (-50 , -50) 
- POINT (50 , -50) 
- POINT (-50 , 50) 

(x, y), deux triangles. Cela se traduirait par un carré d'une couleur (ces triangles sont une couleur), ou éventuellement un carré divisé en deux si je devais changer les couleurs.

Est-ce que ... Ce n'est pas le cas.

Au lieu de cela, je reçois ceci

alt text

OU (ce qui est bizarre), quand je passe l'ordre dans lequel les triangles sont dessinés: alt text

...

Une idée de ce qui se passe? J'ai lu sur un autre forum que les fonctions beginFill et endFill sont supposées être appelées avant et après avoir dessiné toutes les formes - évidemment c'est ce que j'ai fait avant même de regarder - la couleur ne sera pas différente autrement. Alors - une idée?

EDIT:

Les appels graphiques ressemblent à ceci:

for (var vi:int = 0; vi < triangles.length; vi++){ 
    gfx.beginFill(0xFF0000, 0.5 + (0.5 * vi)); 
    trace("DRAW"); 
    trace("- POINT (" + triangles[vi].points[0].x + " , " + triangles[vi].points[0].y + ")"); 
    trace("- POINT (" + triangles[vi].points[1].x + " , " + triangles[vi].points[1].y + ")"); 
    trace("- POINT (" + triangles[vi].points[2].x + " , " + triangles[vi].points[2].y + ")"); 
    gfx.lineTo(triangles[vi].points[0].x, triangles[vi].points[0].y); 
    gfx.lineTo(triangles[vi].points[1].x, triangles[vi].points[1].y); 
    gfx.lineTo(triangles[vi].points[2].x, triangles[vi].points[2].y); 
    gfx.lineTo(triangles[vi].points[0].x, triangles[vi].points[0].y); 
    gfx.endFill(); 
} 
+0

Les appels réels à l'objet Graphics seraient utiles. – Aaron

+0

Ajouté les ... Est-ce un bug réel ou? –

Répondre

0

La première gfx.lineTo devrait être un gfx.moveTo.

+0

OH, maintenant je comprends. : D Oublier d'appeler un mouvementTo avant chaque triangle ... Il en résulte une ligne FROM du dernier point du triangle précédent. Merci quand même. –