Dynamic stageWidth and Height in Flash AS3

≯℡__Kan透↙ 提交于 2019-12-21 19:59:53

问题


This seems like it would be a really easy thing to do, but its been giving me all kinds of headaches. I have a movieclip that is a gallery, It's linked to be called from AS when a button is clicked. When an image in the gallery is clicked, It fades in using the Tween class and is supposed to be centered in the main stage, but its centering to the movieClip instead.

Here is the 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);
}

I have tried all of these combinations to no avail:

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

None of these place the image in the right spot.


回答1:


Set these this property to make your stage have it's origo (0x0) in the top left:

stage.align = StageAlign.TOP_LEFT;

And this to make the stage stay the same scale as the window changes size:

stage.scaleMode = StageScaleMode.NO_SCALE;

Then you will need to wait until your image is loaded before you align it, since it won't have a width before then. I would also recommend listening for Event.RESIZE on the stage, this is fired whenever the size changes.

Assuming all that your current code should work fine!

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



回答2:


MovieClip(root).addChild(myFull); don't forget to do the same to removeChild



来源:https://stackoverflow.com/questions/833466/dynamic-stagewidth-and-height-in-flash-as3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!