我将显示对象放在中间。 stage.stageWidth / 2。出于某种原因,他们进一步对齐屏幕右侧。
除了闪光灯中的舞台宽度,我没有改变任何东西。有没有人听说过这个问题?除了加宽屏幕和调整高度之外,我还没有做过任何事情。
这是我试图修复它的代码,但没有发生任何事情。
我在显示对象上的焦点位于左上角。因此,当设置为0,0
时,它会完美对齐stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.stageWidth = 300;
答案 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;
可以正常工作。