2010-01-06 5 views
0

Je suis en train d'aligner mes objets d'affichage au milieu. stage.stageWidth/2. pour une raison quelconque, ils s'alignent plus loin à droite de l'écran.Les objets affichés ne s'alignent pas correctement

Je n'ai pas modifié autre chose que la largeur de la scène en flash. Quelqu'un at-il entendu parler de ce problème? Encore une fois, je n'ai rien fait sauf élargir l'écran et ajuster la hauteur.

Voici le code que j'ai essayé de mettre pour le réparer et rien ne s'est passé.

Mon point de mise au point sur l'objet d'affichage est en haut à gauche. il aligne parfaitement lorsqu'il est réglé sur 0,0

stage.scaleMode = StageScaleMode.NO_SCALE; 
stage.align = StageAlign.TOP_LEFT; 
stage.stageWidth = 300; 

Répondre

1

stage.stageWidth/2 est le centre exact de votre scène, en termes de pixels à partir de la gauche de la scène. Supposons que vous ayez un objet square de 100x100 pixels, avec son point d'enregistrement en haut à gauche (à (0,0) local à lui-même).

Si vous voulez square être centré sur la scène, vous voulez vraiment mettre le milieu de square au centre de la scène, et non pas du côté gauche de square.
Donc, au lieu de square.x = stage.stageWidth/2;
Utilisez square.x = stage.stageWidth/2 - square.width/2;, qui place la moitié du carré à gauche du centre, laissant l'autre moitié vers la droite, ce qui le rend parfaitement centré.

Notez que cette technique ne fonctionne qu'avec les objets dont le point d'alignement est situé à leur limite gauche. Si le point d'enregistrement était au milieu de square pour commencer, alors square.x = stage.stageWidth/2; fonctionnerait correctement.

+0

Oui, il commence à avoir un sens pour moi maintenant. – numerical25

2

Si vous redimensionnez la scène (ou plutôt la fenêtre dans laquelle le fichier SWF est intégré), vous bénéficierez d'utiliser StageAlign.TOP_LEFT, et la désactivation de mise à l'échelle de l'étape (c.-à- avec StageScaleMode.NO_SCALE) comme ce que vous faites. Vous ne devriez jamais définirstageWidth cependant, il est mis à jour lorsque l'utilisateur redimensionne la scène. Je ne suis pas sûr du comportement quand je fais cela, donc je suggère de supprimer la ligne trois de votre extrait ci-dessus, et voir si cela aide.

+0

ligne 3 était une tentative de dernière minute. ce n'est pas la raison pour laquelle mes objets apparaissent plus à droite. Je me demande, est-ce à cause de mon point de focalisation sur mon objet en haut à gauche. Je suis en train de paver cet objet donc il est probablement plus loin vers la droite, n'est-ce pas? – numerical25

Questions connexes