0

我正在尝试在我的舞台上找到一个 MovieClip 的 AS3 代码。我的舞台在不同的屏幕(不同尺寸的显示器)上按比例调整大小,但 MC 对于较小屏幕的笔记本电脑来说太大了,并且它的某些部分被切断了。任何帮助将不胜感激

4

2 回答 2

1

把这个放在其他任何事情之前。此代码查找从原始布局到重新调整大小的比例大小。(注意:最好在 Event.RESIZE 发生时使用它)

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

var guiSize:Rectangle = new Rectangle(0, 0, 1024, 600); //original stage size, substitute this with your orginal size
var deviceSize:Rectangle = new Rectangle(0, 0,
Math.max(stage.fullScreenWidth, stage.fullScreenHeight),
Math.min(stage.fullScreenWidth, stage.fullScreenHeight));

var appScale:Number = 1;

if ((deviceSize.width/deviceSize.height) > (guiSize.width/guiSize.height)) {
    appScale = deviceSize.height / guiSize.height;
} 
else {
    appScale = deviceSize.width / guiSize.width;
}

然后,使用 appScale 缩放您拥有的每个 MovieClip/Sprite,例如 _mc.scaleX = _mc.scaleY = appScale。使用这种方式,每次调整舞台大小时,都会移动右边界和下边界。这意味着如果您希望您的页脚始终距离底部 50 像素,您应该使用以下内容:

_footer.y = stage.stageHeight - (50 * appCale);
于 2012-10-27T19:46:52.977 回答
1

您可以限制任何缩放,并自己处理大小调整:

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

查看可用的缩放模式对齐属性的文档。

于 2012-10-27T17:59:48.257 回答