Flash Web結(jié)構(gòu)之?dāng)?shù)據(jù)顯示層
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-06 01:13:22 作者:佚名
我要評(píng)論
前面講Flash Web背景層的時(shí)候已經(jīng)提到了數(shù)據(jù)顯示層。由于筆者基本不使用組件,所以對(duì)筆者來(lái)說(shuō),數(shù)據(jù)顯示層主要是指TextField,或者用MC簡(jiǎn)單包裝的TextField。它們是網(wǎng)站信息的主體部分,一般都是動(dòng)態(tài)的調(diào)用外部信息。當(dāng)然,由于我用MC進(jìn)行了包裝,它們也可以作為按鈕使
前面講Flash Web背景層的時(shí)候已經(jīng)提到了數(shù)據(jù)顯示層。由于筆者基本不使用組件,所以對(duì)筆者來(lái)說(shuō),數(shù)據(jù)顯示層主要是指TextField,或者用MC簡(jiǎn)單包裝的TextField。它們是網(wǎng)站信息的主體部分,一般都是動(dòng)態(tài)的調(diào)用外部信息。當(dāng)然,由于我用MC進(jìn)行了包裝,它們也可以作為按鈕使用,比較常見(jiàn)的就是標(biāo)題列表,比如我主站上三個(gè)子站最新發(fā)布列表。
就像我前面說(shuō)過(guò)的,數(shù)據(jù)顯示層要盡量的精簡(jiǎn)體積,它是一個(gè)Flash web瀏覽效率的關(guān)鍵,不適合做大量的效果,尤其是位圖效果。而它的結(jié)構(gòu)也要盡量清晰且工整,便于代碼控制。對(duì)于Flash模式的網(wǎng)站可以考慮直接將TextField放到_root上;而對(duì)于PS模式和混合模式,則最好還是用MC對(duì)TextField進(jìn)行包裝,以保證網(wǎng)站各欄目的獨(dú)立性。
淺談數(shù)據(jù)層
數(shù)據(jù)層可謂是整個(gè)Flash web的中樞神經(jīng)系統(tǒng),負(fù)責(zé)Flash web的所有數(shù)據(jù)顯示和交換,還有功能的實(shí)現(xiàn),甚至是動(dòng)畫的控制。
在正式開(kāi)始講解數(shù)據(jù)層之前,我想先回顧一下我自己的代碼編寫歷史。最開(kāi)始的時(shí)候,我一般都是直接把代碼寫在元件上,這樣寫的局限性比較大,很多功能無(wú)法實(shí)現(xiàn);后來(lái)我開(kāi)始嘗試在時(shí)間軸上寫,可由于當(dāng)時(shí)能力有限,部分代碼還是要寫在元件上,這樣就造成代碼混亂,時(shí)間一長(zhǎng),自己也記不清代碼到底寫哪兒;AS能力稍微強(qiáng)點(diǎn)后,我就不再在元件上寫代碼了,而是全部寫在時(shí)間軸上,一般都是每個(gè)欄目,或者是每個(gè)MC包含自己獨(dú)自的代碼,這樣做的好處是,代碼分布比較清晰,而且代碼獨(dú)立性比較好。但即便這樣做,還是不夠理想,因?yàn)槿绻W(wǎng)站MC嵌套結(jié)果非常復(fù)雜的話,每個(gè)MC的代碼都獨(dú)自包含,那么代碼可能會(huì)寫在很深層的MC上,而且MC很多話,代碼也將隨之分布很散,這樣還是不方便代碼的集中管理,也不容易從總體上把握網(wǎng)站數(shù)據(jù)之間的聯(lián)系。
現(xiàn)在的我怎么做呢?由于我現(xiàn)在不僅AS已經(jīng)玩得很熟,而且能夠從宏觀上對(duì)網(wǎng)站結(jié)構(gòu)進(jìn)行比較到位的把握,所以我已經(jīng)完全有能力根據(jù)網(wǎng)站的特點(diǎn)和功能在正式動(dòng)工之前就把網(wǎng)站劃分為若干功能模塊,然后用我自創(chuàng)的MC三幀式去完成每個(gè)模塊的實(shí)現(xiàn)。
打開(kāi)我網(wǎng)站的源文件,你會(huì)發(fā)現(xiàn),除了主時(shí)間軸和主時(shí)間軸上一系列具有“三幀式”結(jié)構(gòu)的空MC外,其它地方極少有代碼,可以說(shuō)核心代碼已經(jīng)完全從網(wǎng)站中分離了出來(lái)。在主時(shí)間軸上,一般來(lái)說(shuō)第一層是AS層,第二層可有可無(wú)的標(biāo)簽層,第三層就是數(shù)據(jù)層,全部的“三幀式”MC都放在這一層,最下面的那些層就是網(wǎng)站主框架了。也許你已經(jīng)忍不住要問(wèn)了,你老說(shuō)“三幀式”,到底什么是“三幀式”啊?問(wèn)得好,這正是我下面要講的重點(diǎn)。
“數(shù)據(jù)層MC三幀式”是我為了方便數(shù)據(jù)管理而自創(chuàng)出來(lái)的一種有效的數(shù)據(jù)組織框架,它巧妙的利用了時(shí)間軸,具有清晰的結(jié)構(gòu),而且還具有通用性。從字面意思,我們便可以猜出來(lái),它是具有三個(gè)空白關(guān)鍵幀的影片剪輯,這三個(gè)幀的名字按在時(shí)間軸上的先后順序依次為“chuShi”、“shuaXin”、“gongNeng”。
“chuShi”幀:這一幀負(fù)責(zé)系統(tǒng)的初始化,主要分兩部分,第一部分一般都是一大串變量。這些變量又分為三種,第一種是所有這個(gè)MC要操作的對(duì)象和其它元件接口;第二種是一些系統(tǒng)初始變量,比如將負(fù)責(zé)留言顯示的頁(yè)碼變量初始為1,就可以讓留言初始為顯示第一頁(yè);最后還有一個(gè)比較特殊的布爾變量,就是“yiJiaZai”,我們把它的值初始為false,表明此MC內(nèi)控制的外部數(shù)據(jù)此時(shí)還未進(jìn)行過(guò)加載,一旦這個(gè)MC控制下的數(shù)據(jù)加載成功,我們立刻將其值變?yōu)閠rue。這樣做的好處是可以根據(jù)此值判斷數(shù)據(jù)是否是第一次加載,然后進(jìn)行不同的設(shè)置和響應(yīng)。第二部分則是注冊(cè)刷新函數(shù),有經(jīng)驗(yàn)的動(dòng)態(tài)Flash web開(kāi)發(fā)者都應(yīng)該知道,F(xiàn)lash中的數(shù)據(jù)刷新是重點(diǎn),這也是Flash web較常規(guī)網(wǎng)頁(yè)的最大優(yōu)勢(shì)之一。在這里,我們需要注冊(cè)倆個(gè)負(fù)責(zé)數(shù)據(jù)刷新的函數(shù):
function chuShi(){gotoAndPlay("chuShi");}
function shuaXin(){play();}
稍后我會(huì)解釋為什么。
“shuaXin”幀:這個(gè)幀是個(gè)空白關(guān)鍵幀,什么都沒(méi)有,它的意義也將在下面解釋。
“gongNeng”幀:這幀主要負(fù)責(zé)各種功能的實(shí)現(xiàn)以及數(shù)據(jù)的呈現(xiàn),為了方便對(duì)整個(gè)網(wǎng)站的控制以及各“三幀式MC”之間的相互控制,我建議把比較重要的功能都寫成函數(shù)。在“gongNeng”幀代碼的最后一定要加上一句gotoAndStop("shuaXin")。這幀中還有一個(gè)重頭戲就是錯(cuò)誤分析和處理,但為了緊扣文章中心,這里就不多講了。
這樣以來(lái)我們就建立起一套簡(jiǎn)單有效的數(shù)據(jù)控制機(jī)制。首先在_root上將所有的“三幀式MC”都stop到第一幀,也就是“chuShi”幀,然后建立一套數(shù)據(jù)加載機(jī)制,通過(guò)控制三幀式MC的播放來(lái)控制數(shù)據(jù)加載順序。數(shù)據(jù)加載完成后,我們就可以在任何地方通過(guò)控制三幀式MC來(lái)控制這個(gè)MC負(fù)責(zé)的網(wǎng)站某特定部分。比如有個(gè)名字為“lieBiao_mc”的三幀式MC是負(fù)責(zé)網(wǎng)站文章標(biāo)題列表這部分的功能,我們就可以通過(guò)下面極其簡(jiǎn)單的代碼來(lái)實(shí)現(xiàn)對(duì)文章列表的控制:
如果我們要得到文章列表的初始狀態(tài),只需要調(diào)用:_level0.lieBiao_mc.chuShi();
如果我們要得到文章列表的某特定狀態(tài),只需要對(duì)負(fù)責(zé)此狀態(tài)的變量賦值,然后調(diào)用:_level0.lieBiao_mc.shuaXin();
如果我們只需要調(diào)用文章列表中的某一項(xiàng)功能,只需要調(diào)用:_level0.lieBiao_mc.特定功能函數(shù)名();
由于我們?cè)?ldquo;gongNeng”幀中就有錯(cuò)誤分析、過(guò)渡動(dòng)畫等這些重復(fù)性內(nèi)容,所以當(dāng)調(diào)用shuaXin函數(shù)時(shí),這些內(nèi)容就會(huì)自動(dòng)觸發(fā),非常簡(jiǎn)單好用。
數(shù)據(jù)層MC三幀式就簡(jiǎn)單介紹到這里,具體細(xì)節(jié)其實(shí)非常豐富,這里只是拋磚引玉。
就像我前面說(shuō)過(guò)的,數(shù)據(jù)顯示層要盡量的精簡(jiǎn)體積,它是一個(gè)Flash web瀏覽效率的關(guān)鍵,不適合做大量的效果,尤其是位圖效果。而它的結(jié)構(gòu)也要盡量清晰且工整,便于代碼控制。對(duì)于Flash模式的網(wǎng)站可以考慮直接將TextField放到_root上;而對(duì)于PS模式和混合模式,則最好還是用MC對(duì)TextField進(jìn)行包裝,以保證網(wǎng)站各欄目的獨(dú)立性。
淺談數(shù)據(jù)層
數(shù)據(jù)層可謂是整個(gè)Flash web的中樞神經(jīng)系統(tǒng),負(fù)責(zé)Flash web的所有數(shù)據(jù)顯示和交換,還有功能的實(shí)現(xiàn),甚至是動(dòng)畫的控制。
在正式開(kāi)始講解數(shù)據(jù)層之前,我想先回顧一下我自己的代碼編寫歷史。最開(kāi)始的時(shí)候,我一般都是直接把代碼寫在元件上,這樣寫的局限性比較大,很多功能無(wú)法實(shí)現(xiàn);后來(lái)我開(kāi)始嘗試在時(shí)間軸上寫,可由于當(dāng)時(shí)能力有限,部分代碼還是要寫在元件上,這樣就造成代碼混亂,時(shí)間一長(zhǎng),自己也記不清代碼到底寫哪兒;AS能力稍微強(qiáng)點(diǎn)后,我就不再在元件上寫代碼了,而是全部寫在時(shí)間軸上,一般都是每個(gè)欄目,或者是每個(gè)MC包含自己獨(dú)自的代碼,這樣做的好處是,代碼分布比較清晰,而且代碼獨(dú)立性比較好。但即便這樣做,還是不夠理想,因?yàn)槿绻W(wǎng)站MC嵌套結(jié)果非常復(fù)雜的話,每個(gè)MC的代碼都獨(dú)自包含,那么代碼可能會(huì)寫在很深層的MC上,而且MC很多話,代碼也將隨之分布很散,這樣還是不方便代碼的集中管理,也不容易從總體上把握網(wǎng)站數(shù)據(jù)之間的聯(lián)系。
現(xiàn)在的我怎么做呢?由于我現(xiàn)在不僅AS已經(jīng)玩得很熟,而且能夠從宏觀上對(duì)網(wǎng)站結(jié)構(gòu)進(jìn)行比較到位的把握,所以我已經(jīng)完全有能力根據(jù)網(wǎng)站的特點(diǎn)和功能在正式動(dòng)工之前就把網(wǎng)站劃分為若干功能模塊,然后用我自創(chuàng)的MC三幀式去完成每個(gè)模塊的實(shí)現(xiàn)。
打開(kāi)我網(wǎng)站的源文件,你會(huì)發(fā)現(xiàn),除了主時(shí)間軸和主時(shí)間軸上一系列具有“三幀式”結(jié)構(gòu)的空MC外,其它地方極少有代碼,可以說(shuō)核心代碼已經(jīng)完全從網(wǎng)站中分離了出來(lái)。在主時(shí)間軸上,一般來(lái)說(shuō)第一層是AS層,第二層可有可無(wú)的標(biāo)簽層,第三層就是數(shù)據(jù)層,全部的“三幀式”MC都放在這一層,最下面的那些層就是網(wǎng)站主框架了。也許你已經(jīng)忍不住要問(wèn)了,你老說(shuō)“三幀式”,到底什么是“三幀式”啊?問(wèn)得好,這正是我下面要講的重點(diǎn)。
“數(shù)據(jù)層MC三幀式”是我為了方便數(shù)據(jù)管理而自創(chuàng)出來(lái)的一種有效的數(shù)據(jù)組織框架,它巧妙的利用了時(shí)間軸,具有清晰的結(jié)構(gòu),而且還具有通用性。從字面意思,我們便可以猜出來(lái),它是具有三個(gè)空白關(guān)鍵幀的影片剪輯,這三個(gè)幀的名字按在時(shí)間軸上的先后順序依次為“chuShi”、“shuaXin”、“gongNeng”。
“chuShi”幀:這一幀負(fù)責(zé)系統(tǒng)的初始化,主要分兩部分,第一部分一般都是一大串變量。這些變量又分為三種,第一種是所有這個(gè)MC要操作的對(duì)象和其它元件接口;第二種是一些系統(tǒng)初始變量,比如將負(fù)責(zé)留言顯示的頁(yè)碼變量初始為1,就可以讓留言初始為顯示第一頁(yè);最后還有一個(gè)比較特殊的布爾變量,就是“yiJiaZai”,我們把它的值初始為false,表明此MC內(nèi)控制的外部數(shù)據(jù)此時(shí)還未進(jìn)行過(guò)加載,一旦這個(gè)MC控制下的數(shù)據(jù)加載成功,我們立刻將其值變?yōu)閠rue。這樣做的好處是可以根據(jù)此值判斷數(shù)據(jù)是否是第一次加載,然后進(jìn)行不同的設(shè)置和響應(yīng)。第二部分則是注冊(cè)刷新函數(shù),有經(jīng)驗(yàn)的動(dòng)態(tài)Flash web開(kāi)發(fā)者都應(yīng)該知道,F(xiàn)lash中的數(shù)據(jù)刷新是重點(diǎn),這也是Flash web較常規(guī)網(wǎng)頁(yè)的最大優(yōu)勢(shì)之一。在這里,我們需要注冊(cè)倆個(gè)負(fù)責(zé)數(shù)據(jù)刷新的函數(shù):
function chuShi(){gotoAndPlay("chuShi");}
function shuaXin(){play();}
稍后我會(huì)解釋為什么。
“shuaXin”幀:這個(gè)幀是個(gè)空白關(guān)鍵幀,什么都沒(méi)有,它的意義也將在下面解釋。
“gongNeng”幀:這幀主要負(fù)責(zé)各種功能的實(shí)現(xiàn)以及數(shù)據(jù)的呈現(xiàn),為了方便對(duì)整個(gè)網(wǎng)站的控制以及各“三幀式MC”之間的相互控制,我建議把比較重要的功能都寫成函數(shù)。在“gongNeng”幀代碼的最后一定要加上一句gotoAndStop("shuaXin")。這幀中還有一個(gè)重頭戲就是錯(cuò)誤分析和處理,但為了緊扣文章中心,這里就不多講了。
這樣以來(lái)我們就建立起一套簡(jiǎn)單有效的數(shù)據(jù)控制機(jī)制。首先在_root上將所有的“三幀式MC”都stop到第一幀,也就是“chuShi”幀,然后建立一套數(shù)據(jù)加載機(jī)制,通過(guò)控制三幀式MC的播放來(lái)控制數(shù)據(jù)加載順序。數(shù)據(jù)加載完成后,我們就可以在任何地方通過(guò)控制三幀式MC來(lái)控制這個(gè)MC負(fù)責(zé)的網(wǎng)站某特定部分。比如有個(gè)名字為“lieBiao_mc”的三幀式MC是負(fù)責(zé)網(wǎng)站文章標(biāo)題列表這部分的功能,我們就可以通過(guò)下面極其簡(jiǎn)單的代碼來(lái)實(shí)現(xiàn)對(duì)文章列表的控制:
如果我們要得到文章列表的初始狀態(tài),只需要調(diào)用:_level0.lieBiao_mc.chuShi();
如果我們要得到文章列表的某特定狀態(tài),只需要對(duì)負(fù)責(zé)此狀態(tài)的變量賦值,然后調(diào)用:_level0.lieBiao_mc.shuaXin();
如果我們只需要調(diào)用文章列表中的某一項(xiàng)功能,只需要調(diào)用:_level0.lieBiao_mc.特定功能函數(shù)名();
由于我們?cè)?ldquo;gongNeng”幀中就有錯(cuò)誤分析、過(guò)渡動(dòng)畫等這些重復(fù)性內(nèi)容,所以當(dāng)調(diào)用shuaXin函數(shù)時(shí),這些內(nèi)容就會(huì)自動(dòng)觸發(fā),非常簡(jiǎn)單好用。
數(shù)據(jù)層MC三幀式就簡(jiǎn)單介紹到這里,具體細(xì)節(jié)其實(shí)非常豐富,這里只是拋磚引玉。
相關(guān)文章

flash如何制作形狀補(bǔ)間動(dòng)畫?flash創(chuàng)建補(bǔ)間形狀技巧
flash一款功能強(qiáng)大的動(dòng)畫制作軟件,制作動(dòng)畫很非常的方便,但動(dòng)畫過(guò)程使用的都是形狀補(bǔ)間功能。今天小編就來(lái)給大家介紹一下flash形狀補(bǔ)間動(dòng)畫制作方法,感興趣的快來(lái)看看吧2022-05-11
flash cs6怎么做花朵成長(zhǎng)的逐幀動(dòng)畫?
flash cs6怎么做花朵成長(zhǎng)的逐幀動(dòng)畫?flash中想要繪制一個(gè)花開(kāi)的動(dòng)畫,該怎么畫出各個(gè)圖形然后做逐幀動(dòng)畫呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2021-03-09
Flash怎么將動(dòng)畫復(fù)制為ActionScript3.0并使用?
Flash怎么將動(dòng)畫復(fù)制為ActionScript3.0并使用?Flash中制作的動(dòng)畫想要直接粘貼到另一個(gè)對(duì)象中,我們可以使用復(fù)制腳本代碼的方式復(fù)制動(dòng)畫,下面我們就來(lái)看看詳細(xì)的教程,需2017-12-08
flash怎么制作漫畫人物行走的動(dòng)畫?flash中想要制作一段行走的動(dòng)畫,該怎么設(shè)計(jì)呢?下面我們就來(lái)看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-04-18- 這篇教程是向腳本之家的朋友分享flash逐幀動(dòng)畫制作全過(guò)程,教程非常基礎(chǔ),很適合新手來(lái)學(xué)習(xí),推薦過(guò)來(lái),有興趣的朋友可以過(guò)來(lái)學(xué)習(xí)2016-01-15
- 下面小編就為大家介紹利用Flash正確的口型吻合動(dòng)畫技巧,教程很不錯(cuò),非常適合新手來(lái)學(xué)習(xí),推薦到腳本之家,喜歡的朋友一起來(lái)學(xué)習(xí)吧2015-01-15
Flash動(dòng)畫制作技巧 圖形元件相關(guān)知識(shí)介紹
這篇教程是向腳本之家的朋友介紹Flash動(dòng)畫制作技巧:圖形元件相關(guān)知識(shí),教程很基礎(chǔ),但很實(shí)用,推薦到腳本之家,喜歡的朋友可以過(guò)來(lái)學(xué)習(xí)一下,希望能對(duì)大家有所幫助2015-01-05Flash動(dòng)畫制作小黑人經(jīng)典動(dòng)畫效果技巧介紹(圖文)
本教程是向大家介紹Flash動(dòng)畫制作小黑人經(jīng)典動(dòng)畫效果技巧,教程很經(jīng)典,介紹的非常詳細(xì),相信對(duì)學(xué)習(xí)Flash朋友有一定的幫助。轉(zhuǎn)發(fā)過(guò)來(lái),希望對(duì)大家有所幫助2014-08-05Flash制作旋轉(zhuǎn)的3D立體盒動(dòng)畫教程
本教程是向大家介紹利用Flash制作旋轉(zhuǎn)的3D立體盒動(dòng)畫教程,制作出來(lái)的效果非常好看,教程介紹的很詳細(xì),希望大家通過(guò)本篇教程能學(xué)習(xí)Flash制作3D動(dòng)畫的方法,這樣以后就可以2014-07-22- 本教程向大家介紹了Flash cs3制作人物行走動(dòng)畫技巧,并做了詳細(xì)的介紹,覺(jué)得教程很不錯(cuò),轉(zhuǎn)發(fā)過(guò)來(lái),希望給朋友們帶來(lái)幫助2014-07-15




