显示未正确对齐的对象

时间:2010-01-06 07:40:29

标签: flash actionscript-3 actionscript

我将显示对象放在中间。 stage.stageWidth / 2。出于某种原因,他们进一步对齐屏幕右侧。

除了闪光灯中的舞台宽度,我没有改变任何东西。有没有人听说过这个问题?除了加宽屏幕和调整高度之外,我还没有做过任何事情。

这是我试图修复它的代码,但没有发生任何事情。

我在显示对象上的焦点位于左上角。因此,当设置为0,0

时,它会完美对齐
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.stageWidth = 300;

2 个答案:

答案 0 :(得分:2)

如果要调整舞台大小(或者更确切地说是嵌入SWF的窗口),那么您将受益于使用StageAlign.TOP_LEFT,并禁用舞台缩放(即使用StageScaleMode.NO_SCALE) '干嘛。您永远不应该设置 stageWidth,它会在用户调整舞台大小时更新。我不确定这样做时的行为,所以我建议从上面的代码段中删除第三行,看看是否有帮助。

答案 1 :(得分:1)

stage.stageWidth / 2是舞台的确切中心,就舞台左侧的像素而言。

假设您有一个100x100像素的对象square,其注册点位于左上角(位于(0,0)本地)。

如果你希望square在舞台上居中,你真的想把square中间放在舞台的中心,而不是左边的square
所以而不是square.x = stage.stageWidth / 2; 使用square.x = stage.stageWidth / 2 - square.width / 2;,将正方形的一半放在中心的左边,将另一半放在右边,使其完全居中。

请注意,此技术仅适用于在其左边界处具有注册点的对象。如果注册点位于square的正中间位置,则square.x = stage.stageWidth / 2;可以正常工作。