萬盛學電腦網

 萬盛學電腦網 >> 圖文處理 >> Flash教程 >> Flash的坐標系統詳解

Flash的坐標系統詳解

  FLASH軟件編輯界面下舞台上元件的坐標和實際在actionscript(以下簡稱“AS”)中測試中不一樣是初學者經常會碰到的問題。大家不免產生疑惑,為什麼FLASH的坐標時而准確,時而不准確呢?其實這是大家不了解FLASH計算坐標方式的緣故,其實FLASH中軟件操作界面的舞台上計算坐標和AS中計算坐標的的基准點並不一致。接下來我們先在試驗中求證,然後再推算出FLASH坐標的運算方式。

  首先我們在場景裡畫一個圓形,然後F8轉化為影片剪輯,轉化時有一個小的細節需要注意一下(一些使用者都忽視了他),在類型選擇旁邊更有一個 “注冊”選項,其實這裡也是能夠選擇的,並不是個只供“查看”的屬性,我們能夠試一下,九個小方格都是能夠點擊的,我們選擇左上角的小方格建立一個MC。 這個時候我們會發現我們建立的MC十字架在MC左上角,圓圈在元件中央,這裡的十字架,我們稱之為注冊點。也就是說我們建立了一個MC,他的注冊點是左上 角。(也能夠嘗試選擇不同的方格,結果證實選中的方格即代表注冊點的位置,當然你也可以通過雙擊進入元件內部把元件把元件放在距離十字心更不規則的位 置)。

Flash的坐標系統詳解 三聯

  讓我們再來觀察以下信息面板,你會發現它也有一個九宮格,但是只有中心和左上角可以選擇,其他點為灰色,這時候點擊九宮格的左上角的那個點。

  然後給這個影片剪輯命名為a_mc,在屬性面板或者信息面板輸入他的坐標是0,0。然後你會發現a_mc的位置處於舞台的左上角。如圖所示:

  

  然後我們打開動作面板,在面板中輸入如下代碼:

  trace("a_mc._x="+a_mc._x);

  trace("a_mc._y="+a_mc._y)

  我們成功在輸出面板中得到了

  a_mc._x=0

  a_mc._y=0

  軟件操作界面中的結果和AS運算的結果是一樣的。

  這時我們把信息面板中九宮格的中間的那個點點選上,你會發現中間選中的那個點變黑了,左上角的點又變成了白色,如圖所示:

  這時候我們發現舞台的坐標立馬就變成了(x:43.5  y:43.5),那麼圓的寬和高都是87,它的坐標正好等於圓的一半。由此可以看出如 果我們把信息面板的九宮格選為中間的那個點的話,那軟件操作界面計算坐標的基准點我們可以暫時理解為元件的中心(不完全是,現在你先可以這麼理解),我們 再用Ctrl+Enter測試查看它在AS中的坐標,發現得到的結果還是:

  a_mc._x=0

  a_mc._y=0

  那麼由此可見,FLASH軟件操作界面中的計算坐標的方式和AS並不一樣,但是起碼來說我們現在能找到一個 共同點:也就是不管舞台中信息面板中設置元件坐標計算的基准點是左上角還是元件的中心,AS計算坐標的基准點始終是元件的十字心。那讓他們的坐標一樣用很 簡單的一個辦法就是把你建立的元件的注冊點都設置成左上角,然後再信息面板的九宮格也點選左上角,那麼AS計算的十字注冊點和軟件操作界面計算的元件坐標 的基准點為同一點,那麼他們的結果就一樣。

  我們重新把這個元件打散,然後摁F8轉換為元件,元件的十字注冊點設為中心,實例名稱為a_mc,如圖所示:

  然後在屬性面板中輸入元件的坐標為(0,0),此時影片剪輯的位置如圖所示:

  此時再測試影片得到

  a_mc._x=0

  a_mc._y=0

  同理,如果你建立的影片剪輯的十字注冊點在元件的中心,那麼信息面板的九宮格也點選中心點,那麼AS計算的十字注冊點和軟件操作界面計算的元件的中心點為同一點,那麼他們的結果就一樣。

  但是我們的操作並非一成不變的,我們轉換元件的時候的注冊點放在左上角和中心點不可能滿足所有的情況。普通的Motion動畫也許對注冊點不敏感,但如果是比較常用的引導線動畫,那麼元件會把自己的十字注冊點鎖在引導線上。AS中的_xscale _yscale的縮放軸心也是基於十字注冊點的,比如我們做FLASH播放器的時候波表效果就必須放在元件底部如圖所示。

  諸如一些鐘擺的FLASH效果元件的十字注冊點還要放在更無規則的地方。那麼此類的物理效果對FLASH的坐標就比較敏感了。好,讓我們接著進行試驗。

  我們摁下Q鍵切換到自由變形工具,然後當把我們把光標移動到a_mc的中心點的位置並拖動中心點的小圓圈,我們發現當我們的小圓圈改變位置的時候,軟件操作界面下的X,Y坐標發生了變化:

  而Ctrl+Enter測試AS,得到的結果還是:

  a_mc._x=0

  a_mc._y=0

  此時我們發現如果信息面板的九宮格中間的那個點選中,軟件操作界面下的X,Y坐標計算實際上是以元件的小圓圈為准的,我們接著實驗,我們在繪制一個長方矩形,然後摁F8轉化為元件,在對話框中設置注冊點為中間最下面的那個點

  然後打開信息面板,把信息面板的九宮格移到中間:

點擊Q變形工具把元件上的圓圈標記移動在十字心上如圖所示,

  此時這個矩形在軟件的操作界面下的坐標是:

  把它的實例名稱設置為b_mc,最後寫下如下代碼:

  trace("b_mc._x="+b_mc._x);

  trace("b_mc._y="+b_mc._y)

  然後測試,你會發現得到和輸出面板得到和屬性面板完全一樣的結果:

  b_mc._x=145.5

  b_mc._y=352

  由此可以得出結論:

  當信息面板的九宮格上選擇中心那個點為基准點,那麼軟件操作界面下的X,Y坐標顯示會以舞台上元件的那個小圓球為准,而無論舞台上信息面板中九 宮格怎麼設置,AS始終會以元件的十字注冊點為准。普通情況下如果我們習慣吧元件的十字注冊點放在左上角,那麼請你把信息面板的九宮格也點選為左上角。如 果你習慣把元件放在十字注冊點的中心點,那麼請你把信息面板的九宮格也點選為中心點。如果你是做波表,或者鐘擺等特殊效果需要元件的十字注冊點處在不規則 的位置,那麼你可以點擊Q用變形工具把元件上的圓圈標記移動在十字心上,信息面板的九宮格也點選為中心點。就能保證在任何情況下FLASH軟件操作界面下 的坐標和AS運算的坐標一樣。

copyright © 萬盛學電腦網 all rights reserved