2009-05-07 8 views
3

Cela semble être une chose très facile à faire, mais cela m'a donné toutes sortes de maux de tête. J'ai un MovieClip qui est une galerie, il est lié pour être appelé à partir d'AS quand un bouton est cliqué. Lorsqu'une image dans la galerie est cliquée, elle s'estompe en utilisant la classe Tween et est censée être centrée sur la scène principale, mais son centrage sur le MovieClip à la place.Étage dynamiqueLargeur et hauteur en Flash AS3

Voici le code:

//Centers and places image right ondo the display board 
function fullLoaded(e:Event):void { 
    var myFull:Loader = Loader(e.target.loader); 
    addChild(myFull); 

    //positioning 
    myFull.x = (stage.stageWidth - myFull.width)/2; 
    myFull.y = (stage.stageHeight - myFull.height) /2; 

    //register the remove function 
    myFull.addEventListener(MouseEvent.CLICK, removeFull); 

    new Tween(myFull, "alpha", Strong.easeInOut,0,1,0.5,true); 
} 

J'ai essayé toutes ces combinaisons sans succès:

MovieClip(root).stage.stageWidth 
root.stage.stageWidth 
parent.stage.stageWidth 

Aucune de ces lieu l'image au bon endroit.

+0

Salut, Avez-vous vérifié la 'stage.align' propriétée? – OXMO456

+0

Oui, je l'ai essayé aussi, sans succès :( –

Répondre

4

Set these cette propriété pour faire de votre étape avoir son origo (0x0) en haut à gauche:

stage.align = StageAlign.TOP_LEFT; 

Et pour rendre la scène reste la même échelle que la fenêtre change de taille:

stage.scaleMode = StageScaleMode.NO_SCALE; 

Ensuite, vous devrez attendre que votre image soit chargée avant de l'aligner, car elle n'aura pas de largeur avant. Je vous recommande également d'écouter Event.RESIZE sur scène, ceci est déclenché chaque fois que la taille change. En supposant que tout votre code actuel devrait fonctionner correctement!

myFull.x = (stage.stageWidth - myFull.width)/2; 
myFull.y = (stage.stageHeight - myFull.height) /2; 
+0

Cela ne marche pas, car cela renvoie la taille de la MovieClip contenant, pas la scène principale! :( –

+0

stage.stageWidth donne la largeur des étapes dont je suis sûr Si vous obtenez des valeurs étranges, essayez d'ajouter les écouteurs – grapefrukt

+0

aussi, la position myFull est évidemment liée à la position x de son parent – grapefrukt

0

MovieClip(root).addChild(myFull); n'oubliez pas de faire la même chose à removeChild