2013-05-06 58 views
1

我對Actionscript和Flash比較陌生,但在Microsoft環境中擁有豐富的經驗,所以我試圖做的只是在.NET中工作, Flash有着根本性的不同,我恐怕沒有得到它。放置在舞臺上時出現ActionScript對象大小問題

我遇到的問題是,我想補充庫對象(在這種情況下,一個簡單的矩形)到我的舞臺,創造它使用ActionScript動態3.

如果我拖動對象到階段,它顯示爲與33px和寬度152px

的高度預期如果我實例是使用ActionScript像這樣:

var rect1:myObject = new myObject() ; 
rect1.x = 0 ; 
rect1.y = 0 ; 
addChild (rect1); 

它顯示爲預期

我現在希望把另一個直接在下面,所以我寫:

var rect2:myObject = new myObject() ; 
rect2.x = 0 ; 
rect2.y = rect1.height ; 
addChild (rect2); 

我希望它與第一個對象對齊,觸及其下緣,但它出現的第一個對象下方的方式(調試報告Rect1的高度實際上設置爲106.5! )

如果我硬編碼rect2.y = 33,則顯示爲預期,觸及第一目標

究竟是什麼發生在這裏。我已經看過stageY的scaleY,但它已經設置爲1.我還看過stage.height(273.9)和stage.stageHeight(768),看看縮放中是否存在相關性,不管工作。

任何幫助將不勝感激。這感覺就像我失蹤的事情一樣明顯,但我已經把自己找到了死亡,並沒有得到任何喜悅。

問候 尼爾

+2

你是否排除了在矩形MovieClip中存在某些「不可見」或非常小的圖形會導致它比預期更高的情況?如果清除關鍵幀並再次重新創建矩形,那麼您仍然會得到相同的結果嗎? – Strille 2013-05-06 11:22:59

+0

謝謝Strille。你正在那裏。當我將代碼剝離回舞臺上沒有其他任何東西的單個按鈕時,它開始按預期工作。我會再次開始構建它並查看它發生了什麼。非常感謝您的建議!:-D – 2013-05-07 08:13:06

回答

1

試試這個:rect2.y = rect1.y + rect1.height ;

+1

事實上,OP在計算高度時忘記了計算矩形的位置。如果'rect1'高40像素,即使'rect1'放在'(0,0)'上,'rect2'也會放在'y = 40'上。 – Joetjah 2013-05-06 11:11:22

+0

所以可能在.net高度是y和高度的總和 – Cherniv 2013-05-06 11:15:06

+0

這將是不切實際的,可能是不正確的。 y是一個對象的位置,height是一個對象的高度。這很清楚。爲什麼高度是位置加上對象的高度? – Joetjah 2013-05-06 11:20:48

1

聽起來像它可能是一個註冊點的問題。

註冊點指定符號實例相對於x,y位置的位置。

如果您雙擊圖庫中的符號,就會看到符號的內容,您將看到代表註冊點的小十字。通常,您希望將內容與註冊點或內容的左上角對齊。

我的猜測是,這可能是你的問題,但不能確定沒有看到你的內容。

此註冊點也用於旋轉。如果要圍繞它的中心點旋轉對象,則需要確保註冊點位於對象的中心。

相關問題