摘要 Flash仿真課件設(shè)計(jì)與制作過程中,大量涉及對(duì)象的準(zhǔn)確定位問題。以Flash 8.0為例,對(duì)其中各個(gè)不同的坐標(biāo)系進(jìn)行詳細(xì)分析與比較,并針對(duì)其在應(yīng)用中的不同作用及適用范圍進(jìn)行闡述,為Flash仿真課件設(shè)計(jì)制作過程中對(duì)象的準(zhǔn)確定位提供比較系統(tǒng)的參考。
關(guān)鍵詞 課件;仿真;坐標(biāo);Flash
中圖分類號(hào):G434 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-489X(2008)24-0107-03
Flash作為當(dāng)今流行的網(wǎng)絡(luò)動(dòng)畫設(shè)計(jì)軟件,已經(jīng)成為課件設(shè)計(jì)與制作者的首選工具,而且不少人已經(jīng)使用了很長(zhǎng)時(shí)間,積累了豐富的Flash作品設(shè)計(jì)與制作經(jīng)驗(yàn),用于教育領(lǐng)域的Flash作品質(zhì)量也越來越高,這并不僅僅體現(xiàn)在畫面的精美與動(dòng)畫的絢麗等方面,更重要的是不少作品已經(jīng)逐漸擺脫了簡(jiǎn)單的“示意”,向著“仿真”的高度靠近,也就是說動(dòng)畫展現(xiàn)出來的,已經(jīng)是科學(xué)原理的真實(shí)再現(xiàn),而不是簡(jiǎn)單的“示意”圖了。
要達(dá)到“仿真”的效果,那么許多形狀以及運(yùn)動(dòng)都不能憑借設(shè)計(jì)者“想當(dāng)然”地去描繪了,而是要根據(jù)嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)公式生成。比如作品中有物體的運(yùn)動(dòng),那么運(yùn)動(dòng)的速度變化以及運(yùn)動(dòng)軌跡等,都要在一定的比例下嚴(yán)格地符合現(xiàn)實(shí)中的真實(shí)情況,要達(dá)到這個(gè)目的,實(shí)際上就是要控制運(yùn)動(dòng)物體的坐標(biāo),使其每時(shí)每刻都要與反映自身運(yùn)動(dòng)規(guī)律的嚴(yán)密的數(shù)學(xué)公式相符合。再比如,現(xiàn)在越來越受到人們重視的非傳統(tǒng)幾何學(xué)——分形幾何,它可以很好地描述諸如小腸絨毛、大腦皮層的結(jié)構(gòu),海岸線、閃電的路徑等[1],如果要用課件精確展示,那么圖形中的每一點(diǎn)的位置,即每一點(diǎn)的坐標(biāo)值,都是要根據(jù)嚴(yán)密的數(shù)學(xué)公式實(shí)時(shí)計(jì)算出來的。
上述情況都說明“仿真”作品對(duì)“坐標(biāo)”的要求,而當(dāng)用Flash設(shè)計(jì)作品時(shí),對(duì)Flash自身獨(dú)特的坐標(biāo)系統(tǒng)的理解就成為了關(guān)鍵,本文以Flash8.0為例,對(duì)Flash自身的各種坐標(biāo)系以及不同的坐標(biāo)值詳加說明。
1 Flash坐標(biāo)的種類
在Flash中,根據(jù)坐標(biāo)系所處的位置不同,可分為位于主場(chǎng)景中的坐標(biāo)和位于影片剪輯中的坐標(biāo)兩大類。

1.1 位于主場(chǎng)景中的坐標(biāo)系
1) 坐標(biāo)描述。此類坐標(biāo)位于所設(shè)計(jì)作品的主場(chǎng)景中,以整個(gè)舞臺(tái)為基本作用范圍,如圖1所示,原點(diǎn)位于舞臺(tái)的左上角,x軸以左為正,y軸以下為正。
2)實(shí)例驗(yàn)證。如圖1中兩點(diǎn)A、B,在動(dòng)作面板中輸入以下代碼:
trace (\"A._x=\"+A._x);
trace (\"B._x=\"+B._x);
trace (\"A._y=\"+A._y);
trace (\"B._y =\"+B._y);
在輸出面板中顯示A、B兩點(diǎn)坐標(biāo)值如下 (具體數(shù)值因A、B兩點(diǎn)位置不同而變) :
A._x=249.9
B._x=165.55
A._y=57.5
B._y=238.7
對(duì)比x、y坐標(biāo)值,可知坐標(biāo)軸方向。
需要注意的是此處所說的坐標(biāo)與圖中標(biāo)尺所顯示出的坐標(biāo)并非完全一致,第四部分中會(huì)涉及到。
1.2 位于元件中的坐標(biāo)系
1)坐標(biāo)描述。此類坐標(biāo)位于設(shè)計(jì)者所建立的“元件”內(nèi),如圖2所示,坐標(biāo)原點(diǎn)位于編輯區(qū)中的“+”符號(hào)處,這個(gè)“+”符號(hào)會(huì)一直顯示在編輯區(qū)中,x軸以左為正,y軸以下為正。

2)實(shí)例驗(yàn)證。如圖2中兩點(diǎn)C、D,同樣在動(dòng)作面板中輸入相應(yīng)代碼,在輸出面板中會(huì)顯示C、D兩點(diǎn)坐標(biāo)值如下:
C._x=115.35
D._x=64.35
C._y=50.2
D._y=120.35
2 坐標(biāo)與注冊(cè)點(diǎn)
2.1 注冊(cè)點(diǎn)的概念設(shè)計(jì)作品過程中所用的“元素”,如圖形、圖像等,一般都是有實(shí)際大小的,要確定它們的坐標(biāo),必須把這些有實(shí)際大小的“元素”縮小成一個(gè)點(diǎn),這個(gè)點(diǎn)的坐標(biāo)就是這個(gè)“元素”的坐標(biāo),而這個(gè)點(diǎn)就是注冊(cè)點(diǎn)。

2.2 實(shí)例的坐標(biāo)與注冊(cè)點(diǎn)的關(guān)系一個(gè)實(shí)例的注冊(cè)點(diǎn)外在表現(xiàn)是一個(gè)“+”符號(hào),例如一個(gè)圓,如圖3中(a)所示,“+”符號(hào)中心的坐標(biāo)即整個(gè)實(shí)例的坐標(biāo)。而“+”符號(hào)并不一定是在整個(gè)實(shí)例的中心位置,設(shè)計(jì)者可以對(duì)它進(jìn)行調(diào)整,如圖3中(b)所示。“+”符號(hào)外圍的小圓圈指示的是整個(gè)實(shí)例的旋轉(zhuǎn)中心,它與注冊(cè)點(diǎn)也是可以隨設(shè)計(jì)者的意愿而分離的,如圖3中(c)所示。
并不是任何“元素”都有注冊(cè)點(diǎn),只有元件或具有元件特性的對(duì)像才具有注冊(cè)點(diǎn)。那么,沒有注冊(cè)點(diǎn)的那些“元素”,在設(shè)計(jì)作品時(shí)是無法實(shí)時(shí)、精確地控制其位置的。這也是為什么經(jīng)常用元件在舞臺(tái)上生成的實(shí)例來設(shè)計(jì)作品,而不是直接用普通圖形、圖像的原因之一。
圖形元件所生成的實(shí)例,雖然有注冊(cè)點(diǎn),但沒有實(shí)例名,所以也不可能調(diào)用其坐標(biāo)值。
2.3 普通圖形的坐標(biāo)普通圖形泛指不具有元件特性的“元素”,它本身根本沒有注冊(cè)點(diǎn),也就是說它根本沒有可供在設(shè)計(jì)作品的過程中調(diào)用的坐標(biāo)值。
3 兩種不同的坐標(biāo)值
拋開在第一部分中提到的兩種不同的坐標(biāo)系所造成的原因不談,一個(gè)元件在舞臺(tái)上形成的實(shí)例往往仍有兩組不同的坐標(biāo)值,即屬性坐標(biāo)值和Action坐標(biāo)值。
3.1 屬性坐標(biāo)值這種坐標(biāo)值顯示在屬性面板或信息面板中,只需選中舞臺(tái)上的對(duì)像就可查看,如圖4所示。這種坐標(biāo)值與圖1和圖2中的標(biāo)尺數(shù)值是相一致的,是任何對(duì)像都具有的,也即在Flash中所涉及的一切“元素”都具有這種坐標(biāo)值。

這種坐標(biāo)值是以對(duì)像最小外切矩形左上角的位置為基點(diǎn)來確定的,與注冊(cè)點(diǎn)無關(guān)[2]。
3.2 Action坐標(biāo)值這種坐標(biāo)值在ActionScript中用到,并且只有“元件”在舞臺(tái)上生成的實(shí)例才具有(圖形元件除外),其調(diào)用的方法是instanceName._x,instanceName._y,在屬性面板中卻是不能顯示出來的。這種坐標(biāo)值是以注冊(cè)點(diǎn)為基點(diǎn)來確定的。
3.3 兩種坐標(biāo)值的比較上述兩種坐標(biāo)值大小是不同的,因?yàn)檫@兩種坐標(biāo)值確定的基點(diǎn)就各不相同,當(dāng)然,驗(yàn)證也很方便:一元件在舞臺(tái)某處生成實(shí)例,實(shí)例名取為myInstance,選中此實(shí)例,則在屬性面板中會(huì)顯示出它的屬性坐標(biāo)值。而Action坐標(biāo)值則可通過運(yùn)行如下腳本代碼調(diào)出:
trace(“x=”+myInstence._x);
trace(“y=”+myInstence._y);
比較所得到的兩組坐標(biāo)值,就可明顯看出截然不同。
在作品設(shè)計(jì)制作過程中,涉及到坐標(biāo)值,在一般情況下,多指Action坐標(biāo)值[3],它在作品運(yùn)行過程中可實(shí)時(shí)改變,靈活多變。例如通過編程隨時(shí)控制運(yùn)動(dòng)對(duì)象的運(yùn)動(dòng)路徑、方向等。而屬性坐標(biāo)多用于幫助設(shè)計(jì)者在設(shè)計(jì)過程中定位對(duì)象在舞臺(tái)上的位置,只是針對(duì)于設(shè)計(jì)者的一種輔助工具而已。
4 嵌套坐標(biāo)
4.1 嵌套坐標(biāo)的含義嵌套坐標(biāo)是指一個(gè)對(duì)象嵌入另一個(gè)對(duì)象之內(nèi),嵌入對(duì)像的坐標(biāo)。例如,舞臺(tái)上有一個(gè)元件生成的實(shí)例,實(shí)例名為inStanceA,inStanceA中又包含另一個(gè)元件生成的實(shí)例inStanceB,inStanceB的坐標(biāo)值即是嵌套坐標(biāo)。此處之嵌套在實(shí)際應(yīng)用中可層層相嵌,即A中包含B,B中包含C,C中包含……
4.2 嵌套坐標(biāo)值的表示如上所述,實(shí)例A在主場(chǎng)景中,而B在A中,則B的坐標(biāo)值(Action坐標(biāo)值)一般有兩種表示:一種是本地坐標(biāo),即B在A坐標(biāo)系中的坐標(biāo)值,俗稱相對(duì)坐標(biāo);另一種是全局坐標(biāo),即B在主場(chǎng)景中的坐標(biāo)值,俗稱絕對(duì)坐標(biāo)。
本地坐標(biāo)與全局坐標(biāo)是可以相互轉(zhuǎn)換的,分別用到如下兩個(gè)函數(shù):全局坐標(biāo)轉(zhuǎn)換成本地坐標(biāo):globalToLocal( );本地坐標(biāo)轉(zhuǎn)換成全局坐標(biāo):localToGlobal( )。
在實(shí)際的設(shè)計(jì)制作中,大多用本地坐標(biāo),語句instinceName._x,instenceName._y調(diào)用的就是這種坐標(biāo)值。全局坐標(biāo)較少用到[4]。
5 結(jié)束語
對(duì)Flash本身坐標(biāo)系統(tǒng)的理解,并非是所有Flash課件設(shè)計(jì)與制作的必要條件,但是,對(duì)于Flash“仿真”課件來說,它卻不僅是必要的,而且對(duì)坐標(biāo)系統(tǒng)的理解程度,直接關(guān)系到設(shè)計(jì)制作過程中的算法分析以及作品最終的檔次高低。因此,坐標(biāo)系統(tǒng)對(duì)Flash“仿真”課件來說,是一個(gè)“基石”。
參考文獻(xiàn)
[1]劉華杰.分形藝術(shù)[M].長(zhǎng)沙:湖南電子音像出版社,1997
[2]徐建志.Flash圖形中心問題剖析[J].海南師范學(xué)院學(xué)報(bào):自然科學(xué)版,2004(2):120-124
[3]繆亮,張愛文.Flash多媒體課件制作實(shí)用教程[M].北京:清華大學(xué)出版社,2007
[4]章精設(shè),繆亮,白香芳.Flash ActionScript2.0編程技術(shù)教程[M].北京:清華大學(xué)出版社,2005