2010-01-06 106 views
0

我正在对齐显示对象的中间位置。 stage.stageWidth/2。出于某种原因,他们正在进一步对准屏幕的右侧。显示对象未正确对齐

我没有改变任何东西,但闪光灯的舞台宽度。有没有人听说过这个问题?再次,我没有做任何事情,除了扩大屏幕和调整高度。

这里是我试图解决它的代码,什么也没有发生。

我在显示对象上的焦点是左上角。所以当设置为0,0

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

回答

1

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

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

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

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

+0

是它现在开始对我有意义。 – numerical25 2010-01-06 20:47:23

2

如果您正在调整阶段(或者说在你的SWF嵌入窗口),那么你将使用StageAlign.TOP_LEFT,并禁用阶段缩放受益完全对齐(即与StageScaleMode.NO_SCALE)就像你在做什么。你不应该设置stageWidth虽然,它会在用户调整舞台大小时更新。我不确定这样做的行为,所以我建议从上面的代码片段中删除第三行,看看是否有帮助。

+0

第3行是最后一刻的尝试。这不是我的物体为什么会出现在右边的原因。我想知道,是不是因为我的关注点在我的对象被设置在左上方。我正在平铺这个对象,所以它可能会将它推向更远的地方? – numerical25 2010-01-06 17:19:03