Flash AS3中的动态stageWidth和Height

时间:2009-05-07 08:24:00

标签: flash actionscript-3 web-applications stage

这似乎是一件非常容易的事,但它给了我各种令人头疼的问题。我有一个画廊的动画片段,它被链接到单击按钮时从AS调用。单击图库中的图像时,它会使用Tween类淡入淡出并且假设在主舞台中居中,但它的中心位置是movieClip。

以下是代码:

//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);
}

我尝试过所有这些组合都无济于事:

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

这些都不会将图像放在正确的位置。

2 个答案:

答案 0 :(得分:4)

设置这个属性以使你的舞台在左上角有它的原点(0x0):

stage.align = StageAlign.TOP_LEFT;

这使得舞台保持与窗口改变大小相同的比例:

stage.scaleMode = StageScaleMode.NO_SCALE;

然后你需要等到你的图像被加载后再对齐它,因为它之前没有宽度。我还建议在舞台上监听Event.RESIZE,只要尺寸发生变化就会触发。

假设您当前的代码应该正常工作!

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

答案 1 :(得分:0)

MovieClip(root).addChild(myFull); 不要忘记对removeChild

做同样的事情