Flash As3窗口调整大小问题

时间:2010-01-12 05:26:40

标签: flash actionscript-3 actionscript actionscript-2

我有一个flash脚本,我通过addChild添加了一个移动剪辑,我的电影区域是500x400 和movieClip我对齐到中心。但是当我试图在浏览器中设置大小时,它没有与中心对齐。我的所有计算都出错了。

package {
    import flash.display.*;
    import flash.display.Stage;
    import flash.geom.*;
    import flash.net.*;
    import flash.media.*;
    import flash.utils.Timer;
    import fl.motion.Color;
    import flash.events.*;
    import flash.text.*;
    import flash.system.LoaderContext;
    import flash.system.Security;

    public class main extends Sprite {

        public function main(){
            trace("Hello");


            var btn:_Button = new _Button();
            btn.x= (stage.stageWidth - btn.width)/2
            btn.y= (stage.stageHeight - btn.height)/2
            addChild(btn);
        }
    }
}

这是我的代码

2 个答案:

答案 0 :(得分:3)

您需要为侦听器添加resizeEvent和FullScreen事件。

public function main():void {
  stage.scaleMode = StageScaleMode.NO_SCALE;
  stage.align = StageAlign.TOP_LEFT;
  ...
  ...
  stage.addEventListener(Event.RESIZE, resizeHandler);
  stage.addEventListener(FullScreenEvent.FULL_SCREEN, resizeHandler);
  ...
}

private function resizeHandler(e:Event):void { btn.x= (stage.stageWidth - btn.width)/2 btn.y= (stage.stageHeight - btn.height)/2 }

答案 1 :(得分:0)

如果居中对齐

btn.x = stage.stageWidth / 2;
btn.y = stage.stageHeight / 2;

如果左上角

btn.x = stage.stageWidth / 2 - btn.width / 2;
btn.y = stage.stageHeight / 2 - btn.height / 2;