周彩琴 楊麗雅 岑慶棚
摘要:與傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)算法教學(xué)相比,利用flash將算法生動(dòng)的展示給觀眾,有利于學(xué)生對(duì)算法的理解和掌握。隨著計(jì)算機(jī)技術(shù)的發(fā)展,電子教學(xué)已經(jīng)應(yīng)用到普通的各門(mén)學(xué)科當(dāng)中,當(dāng)然身為本專業(yè)的我們也需要。動(dòng)畫(huà)設(shè)計(jì)不但只是展示更側(cè)重與學(xué)生互動(dòng)在玩中學(xué),在學(xué)中玩,不僅能夠讓學(xué)生迅速入門(mén),還能培養(yǎng)學(xué)生的動(dòng)手能力,訓(xùn)練其思維,激發(fā)學(xué)生的學(xué)習(xí)興趣。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)算法 ;flash設(shè)計(jì)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)36-8793-02
1 flash
Flash是美國(guó)的MACROMEDIA公司于1999年6月推出的優(yōu)秀交互式矢量圖和 Web 動(dòng)畫(huà)的標(biāo)準(zhǔn)。用它可以將音樂(lè),聲效,動(dòng)畫(huà)以及富有新意的界面融合在一起,以制作出高品質(zhì)的動(dòng)態(tài)效果[1]。
1.1 Flash的現(xiàn)狀
Flash隨著科技的發(fā)展,網(wǎng)絡(luò)的流通,設(shè)計(jì)者的創(chuàng)意編輯,早已融入人們的生活當(dāng)中。一個(gè)小小的尺量圖編輯軟件竟然可以創(chuàng)造出令人不但賞析悅目及感嘆其美妙的動(dòng)畫(huà)?,F(xiàn)在對(duì)于flash以及慢慢被國(guó)人熟悉,不但專業(yè)人員對(duì)其追捧,連普通大眾對(duì)其好奇研究。而且很多flash動(dòng)畫(huà)作品不單只是單純的美化網(wǎng)頁(yè)界面和創(chuàng)作影視動(dòng)畫(huà),它融入了教學(xué)當(dāng)中。像有些化學(xué)實(shí)驗(yàn)不好真實(shí)的在學(xué)生面前展示,就讓學(xué)生觀看一個(gè)模擬此化學(xué)實(shí)驗(yàn)的過(guò)程,讓學(xué)生輕松的懂得此原理和實(shí)驗(yàn)過(guò)程。也有模擬物理運(yùn)動(dòng)軌跡,還原場(chǎng)景等等。這表明flash更能讓人們直觀地了解事物,而且加上真實(shí)的音效和新穎界面更讓人簡(jiǎn)單易懂和對(duì)美的享受。
1.2 flash的未來(lái)
隨著Flash的普及,flash領(lǐng)域也涉及到個(gè)個(gè)方面,無(wú)論是網(wǎng)頁(yè)廣告,網(wǎng)絡(luò)動(dòng)畫(huà)還是教學(xué)多媒體課件應(yīng)用將會(huì)越來(lái)越廣。人們對(duì)于它的研究將永不止步。FLASH動(dòng)畫(huà)在中國(guó)的發(fā)展取得了一定的進(jìn)展,但是頂盛時(shí)期還沒(méi)有到來(lái)。隨著網(wǎng)絡(luò)時(shí)代的到來(lái),傳統(tǒng)媒體和非傳統(tǒng)媒體必將在相互競(jìng)爭(zhēng)中不斷向前發(fā)展,F(xiàn)LASH動(dòng)畫(huà)必將隨著自身技術(shù)和設(shè)計(jì)上的更大的進(jìn)步,展現(xiàn)出更為廣闊的前景和未來(lái)。
2 數(shù)據(jù)結(jié)構(gòu)與算法
2.1 數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)是相互之間存在的一種或多種特定關(guān)系的數(shù)據(jù)元素的集合[2]。包括4類基本的結(jié)構(gòu):線形結(jié)構(gòu)、集合、樹(shù)形結(jié)構(gòu)、網(wǎng)狀或圖狀結(jié)構(gòu)。通俗點(diǎn)就是數(shù)據(jù)的邏輯結(jié)構(gòu),像數(shù)據(jù)在計(jì)算機(jī)中是如何存放的是以什么方式存放的。
2.2 算法
算法實(shí)際是編程過(guò)程中完成一個(gè)事件采用的方法,在現(xiàn)實(shí)生活中同一件事不同的人有不同的處理方法,或許他們都可以解決這個(gè)問(wèn)題,但是哪一個(gè)方法能更省時(shí)更有效的解決取決于他是如何設(shè)計(jì)的。我們所追求的算法就是更省時(shí)更省空間的簡(jiǎn)便的方法,編程過(guò)程中采用好的算法可以降低程序的時(shí)空復(fù)雜度。
對(duì)于剛剛接觸計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu)的同學(xué)而言,對(duì)于它都很陌生。因?yàn)樵谖覀円郧暗幕A(chǔ)教育中不曾設(shè)計(jì)到這個(gè)方面,而在日常生活更是遙遠(yuǎn)。要在代碼和圖片中了解此數(shù)據(jù)相互依存的關(guān)系和實(shí)現(xiàn)此關(guān)系的方法,理解起來(lái)確實(shí)是不太容易就像天上的星星遠(yuǎn)看而不能盡玩焉。即使有老師的引導(dǎo)也不是一言半語(yǔ)說(shuō)得清楚,要費(fèi)一番苦心才能讓我們弄懂。老師講得累,我們學(xué)得也費(fèi)勁,真希望書(shū)里面的圖片可以變成立體實(shí)物,里面的文字可以圖文并貌和語(yǔ)音傳遞到我們的腦子中。那我們就可以更輕松地掌握此知識(shí)。
3 以Flash的方式展現(xiàn)數(shù)據(jù)結(jié)構(gòu)與算法的優(yōu)勢(shì)
3.1 表達(dá)方式直觀
Flash運(yùn)用圖片、文字、音效以動(dòng)態(tài)的方式展現(xiàn)在觀眾面前,使人更為直觀的了解事物變化的過(guò)程。Flash動(dòng)畫(huà)將算法中的每一步動(dòng)用動(dòng)畫(huà)的形式展現(xiàn)告訴你是如何實(shí)現(xiàn)這些功能的。例如其中樹(shù)、森林和二叉樹(shù)之間的轉(zhuǎn)換,你可以看到轉(zhuǎn)換之中的全部過(guò)程,每一個(gè)步驟旁邊都會(huì)說(shuō)明為什么這個(gè)步驟是這樣子的,如果你對(duì)這簡(jiǎn)單描述沒(méi)看懂還可以點(diǎn)進(jìn)“解釋”進(jìn)行詳細(xì)閱讀,讓你清楚這個(gè)算法是如何實(shí)現(xiàn)的。這比起我們傳統(tǒng)地閱讀書(shū)本要直接得多,讓我們更容易掌握這個(gè)算法。當(dāng)時(shí)間久了之后,或許你會(huì)忘記這個(gè)算法的原理,如果再讓你看回書(shū)本或許有點(diǎn)費(fèi)神和浪費(fèi)時(shí)間;那么你就可以看看關(guān)于它的動(dòng)畫(huà)就更能快速地回憶起這個(gè)算法。
3.2 互動(dòng)性強(qiáng)
教學(xué)動(dòng)畫(huà)并不是想觀看動(dòng)畫(huà)片似的只是觀看型動(dòng)畫(huà),它具有互動(dòng)性。同學(xué)對(duì)某些動(dòng)畫(huà)可是自己輸入數(shù)值體驗(yàn)。例如其中的順序表的插入,動(dòng)畫(huà)當(dāng)中的順序表有幾個(gè)固定的值,同學(xué)們可以在上面根據(jù)提示在上面的動(dòng)態(tài)文本中輸入你要插入的值和插入的位置。動(dòng)畫(huà)中會(huì)根據(jù)你給出的數(shù)據(jù),找到順序表中符合的位置進(jìn)行插入??梢宰屚瑢W(xué)們?nèi)谌雱?dòng)畫(huà)之中,而不是單純的觀看,增加學(xué)習(xí)的興趣,而且可以讓學(xué)生更容易明白此算法的原理。
3.3 界面美觀
當(dāng)學(xué)生看到數(shù)據(jù)結(jié)構(gòu)那本書(shū)的時(shí)候,或許會(huì)感嘆全是密密麻麻的文子和代碼,偶爾也只有黑黑的圖片,看久了肯定會(huì)覺(jué)得乏味無(wú)趣,也很傷神。現(xiàn)在這個(gè)時(shí)代連小學(xué)生都使用電子教學(xué),出現(xiàn)了許多的已教學(xué)性質(zhì)的電子產(chǎn)品出現(xiàn),例如點(diǎn)讀機(jī)、家教王,學(xué)習(xí)電腦。這些的產(chǎn)品受到了許多學(xué)生的熱衷和喜愛(ài),它們主要的功能都是提高學(xué)生的興趣,幫助和方便學(xué)生學(xué)習(xí)。同樣,動(dòng)畫(huà)也起到了這樣的功能,動(dòng)畫(huà)的界面就好比風(fēng)景,越美麗人們的目光停留得越久。首先動(dòng)畫(huà)的界面本身就具有吸引人眼球的功能,提高觀看動(dòng)畫(huà)的動(dòng)力,自然提高了學(xué)習(xí)的興趣。一個(gè)網(wǎng)站功能做得再好,界面不美觀也沒(méi)人注意,一部動(dòng)漫情節(jié)再好,場(chǎng)景不氣魄人物不生動(dòng),也不會(huì)有人喜歡。
4 Flash的實(shí)現(xiàn)
4.1 圖像,圖形處理
Flash當(dāng)中只能畫(huà)尺量圖,處理圖片的功能是有限的,所以一些底圖就必須借助其他軟件實(shí)現(xiàn)。像背景圖片和一些主要組成的動(dòng)畫(huà)的圖片都經(jīng)過(guò)了PS處理,平面設(shè)計(jì)是PHOTOSHOP應(yīng)用最為廣泛的領(lǐng)域,無(wú)論是正在閱讀的圖書(shū)封面,還是大街上看到的招帖、海報(bào),這些具有豐富圖像的平面印刷品,基本上都需要PHOTOSHOP軟件對(duì)圖像進(jìn)行處理,PS具有強(qiáng)大的處理圖片的功能。但所有的圖形都使用PS處理再導(dǎo)入到flash庫(kù),未免過(guò)于繁瑣。所以有些小圖標(biāo)和路線就直接在flash中新建元件中制作圖形,然后再引用影視剪輯和動(dòng)畫(huà)中。這樣做即不失界面的美觀,有更有效的實(shí)現(xiàn)動(dòng)畫(huà),增加了制作動(dòng)畫(huà)的效率。
4.2 合理使用元件
Flash中如果所有的動(dòng)畫(huà)都在主場(chǎng)景中完成,首先會(huì)增加圖層數(shù)量,不便于管理;其次對(duì)于某次重復(fù)使用的某些部分,如果再場(chǎng)景制作就必須重復(fù)制作這樣不免是繁瑣的,而且某些效果這樣做是實(shí)現(xiàn)不了的。所以就必須使用影片剪輯,這樣不但可以重復(fù)使用,修改起來(lái)還比較方便。尤其是本次動(dòng)畫(huà)中,節(jié)點(diǎn),表格,葉子都是大量重復(fù)使用,使用影片剪輯可以減少工作量,而且有時(shí)候需要修改某些效果的時(shí)候,在影片剪輯中修改就可以對(duì)在動(dòng)畫(huà)中使用它的部分統(tǒng)一修改,這樣使用制作起來(lái)比較方便。影片剪輯還可以對(duì)尺量圖的關(guān)鍵點(diǎn)中的變化添加補(bǔ)幀,使其很自然地過(guò)度,這樣觀看起來(lái)的動(dòng)畫(huà)效果比較逼真。元件除了制作影片剪輯之外還可以制作圖形。從軟件外部導(dǎo)入圖片是不可以對(duì)其進(jìn)行特殊處理,但如果轉(zhuǎn)化為元件圖形就可以改變其色彩效果像Alpha值、亮度和色調(diào),那么要進(jìn)行微調(diào)的時(shí)候就不需要再PS中修改再處理了,這樣既可以減少工作量也可以保證效果。
4.3 使用Actionscript腳本語(yǔ)言編輯動(dòng)作
做制作一個(gè)好的動(dòng)畫(huà)就必須使用Flash專用的腳本語(yǔ)言Actionscript,本動(dòng)畫(huà)是用Actionscript2.0編寫(xiě)的,動(dòng)畫(huà)中有許多效果如不用腳本語(yǔ)言的編寫(xiě)時(shí)實(shí)現(xiàn)不了的。像簡(jiǎn)單的播放按鈕也要用代碼在按紐寫(xiě)上 on(release){gotoAndStop();}才可以運(yùn)行。因?yàn)槠渲猩婕暗綄?duì)影片剪輯的控制和與用戶的互動(dòng)。從控制動(dòng)畫(huà)的播放,控制影片剪輯的動(dòng)作,到獲取用戶的提交的數(shù)據(jù)和打印出需要的效果,這一系列都需要借助Actionscript腳本語(yǔ)言進(jìn)行編寫(xiě),不然純粹的在場(chǎng)景引用元件制作動(dòng)畫(huà)是遠(yuǎn)遠(yuǎn)達(dá)不到你想要的效果的。
5 總結(jié)
教學(xué)動(dòng)畫(huà)的制作仍有不足的地方,但經(jīng)過(guò)這次的設(shè)計(jì),無(wú)論是對(duì)Flash還是對(duì)數(shù)據(jù)結(jié)構(gòu)都有了更深的理解,作者會(huì)對(duì)其繼續(xù)研究和探討,相信在未來(lái)還可以做得更好。FLASH動(dòng)畫(huà)必將隨著自身技術(shù)和設(shè)計(jì)上的更大的進(jìn)步,展現(xiàn)出更為廣闊的前景和未來(lái)。
參考文獻(xiàn):
[1] 嚴(yán)蔚敏,李冬梅,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:人民大學(xué)出版社,2011:4-5.endprint