2010-01-06 108 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