2010-06-29 16 views
1

D'où provient la propriété .x et .y d'un MovieClip dans ActionScript 3.0? du centre de l'objet? ou.....?D'où provient la propriété .x et .y d'un Sprite dans ActionScript 3.0? du centre de l'objet? ou.....?

Par exemple, étant donné un Sprite programmaticalement dessiné:

  graphics.beginFill(0x000000); 
     graphics.moveTo(9.00000000,-7.00000000); 
     graphics.lineTo(13.00000000,0.00000000); 
     graphics.lineTo(9.00000000,6.00000000); 
     graphics.lineTo(-11.00000000,6.00000000); 
     graphics.lineTo(-14.00000000,0.00000000); 
     graphics.lineTo(-11.00000000,-7.00000000); 
     graphics.lineTo(9.00000000,-7.00000000); 
     graphics.endFill(); 

Où se sprite.x et mesure sprite.y à partir?

Le coin supérieur gauche? Ou centre du sprite? ou...?

S'il vous plaît éclairer moi, merci les gars!

Cordialement.

Répondre

1

L'origine est toujours le coin supérieur gauche de l'objet. x croît positivement vers la droite et négativement vers la gauche; y pousse positivement vers le bas et négativement vers le haut.

0,0 ---- 5,0 
|   | 
|   | 
|   | 
0,5 ---- 5,5 

Ainsi, l'origine de la scène/objet racine est le coin supérieur gauche du fichier SWF parce que ses coordonnées sont 0,0. Si vous ajoutez un objet d'affichage à l'objet racine et de définir son x et y-5, (mc.x = 5; mc.y = 5;), et tracer une ligne sur ses coordonnées locales 0,0-15,15 cette ligne serait tirée 5,5-20,20 sur les coordonnées globales.

Extrayez les méthodes et globalToLocal de la classe DisplayObject.

+0

Bonjour, j'ai essayé la propriété .x et .y sur le Sprite que j'ai dessiné, et ce n'est pas en haut à gauche Quelle idée puis-je dériver les coordonnées.x et .y? – ActionScriptNoob

+0

@action Votre code va dessiner un hexagone autour de l'origine Je ne comprends pas ce que vous voulez dire en dérivant les coordonnées x et y Les coordonnées locales n'ont rien à faire avec les positions x/y (sauf lorsque vous les convertissez en coordonnées globales) Chaque objet possède son propre système de coordonnées. – Amarghosh

0

Je pense que votre confusion vient de la nature en couches des systèmes de coordonnées dans Flash. Lorsque vous dessinez votre Sprite, les valeurs x et y que vous passez aux méthodes graphiques (par exemple lineTo) sont mesurées par rapport au système de coordonnées des sprites. Le déplacement du fichier .x et .y de l'image-objet déplacera tout dans les graphiques de l'image-objet. Donc, si l'image-objet était initialement à (0,0) et a exécuté le code ci-dessus, une grande partie du dessin est hors de l'écran (car elle dessine des valeurs négatives x et y) Si, après avoir exécuté le code ci-dessus, sprite à (14,7), toutes les lignes seraient visibles (juste à peine)