運(yùn)用FLASH動(dòng)畫(huà)制作MTV畢業(yè)論文_第1頁(yè)
運(yùn)用FLASH動(dòng)畫(huà)制作MTV畢業(yè)論文_第2頁(yè)
運(yùn)用FLASH動(dòng)畫(huà)制作MTV畢業(yè)論文_第3頁(yè)
運(yùn)用FLASH動(dòng)畫(huà)制作MTV畢業(yè)論文_第4頁(yè)
運(yùn)用FLASH動(dòng)畫(huà)制作MTV畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 編 號(hào): 審定成績(jī): XXXX大學(xué)畢業(yè)設(shè)計(jì)(論文)設(shè)計(jì)(論文)題目:FLASH MTV動(dòng)畫(huà)制作學(xué) 院 名 稱(chēng) :計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院學(xué) 生 姓 名 :X X專(zhuān) 業(yè) :計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)班 級(jí) :0490 xxx學(xué) 號(hào) :0610 xxxx指 導(dǎo) 教 師 :X X X答辯組 負(fù)責(zé)人 :填表時(shí)間: 2009 年 5 月XXXX大學(xué)教務(wù)處畢業(yè)設(shè)計(jì)(論文)任務(wù)書(shū)題目FLASH MTV動(dòng)畫(huà)制作專(zhuān)業(yè)多媒體技術(shù)班級(jí)多媒體0701學(xué)生姓名滿(mǎn)超所在系信息工程系導(dǎo)師姓名何武超導(dǎo)師職稱(chēng)助理教師一、設(shè)計(jì)(論文)內(nèi)容制作FLASH MTV宣揚(yáng)FLASH MTV事業(yè)、發(fā)揮創(chuàng)造靈感的FLASH MTV。通過(guò)FLASH

2、強(qiáng)大的處理能力、齊全的編輯功能,發(fā)揮FLASH MTV本身的優(yōu)勢(shì),結(jié)合本人對(duì)MTV本身的理解,制作出一系列的MTV動(dòng)畫(huà),讓MTV作品為社會(huì)所用 。FLASH MTV表現(xiàn)方式獨(dú)特, 主題突出,并蘊(yùn)含一定寓意,并使用PHOTOSHOP等軟件進(jìn)行處理圖像。二、基本要求通過(guò)FLASH MTV等軟件,結(jié)合自己的專(zhuān)業(yè)知識(shí),制作并完成一系列的MTV設(shè)計(jì),有一定的獨(dú)到的創(chuàng)新意識(shí),MTV主題明確,寓意深刻,健康向上,有內(nèi)涵,每一部MTV,結(jié)構(gòu)完整,利用其他輔助軟件如:photoshop 畫(huà)圖工具。三、主要技術(shù)指標(biāo)(或研究方法)通過(guò)使用FLASH 圖形的創(chuàng)建、圖形編輯、文本操作、創(chuàng)建動(dòng)畫(huà)、合成聲音的強(qiáng)大功能來(lái)制作

3、MTV,并合理地安排將素材有機(jī)地組織在一起,并應(yīng)用MTV的一定形式,給MTV賦予一定的意義,引導(dǎo)人們朝MTV要表達(dá)的方面想,起到教育鞭策的作用,使之表現(xiàn)突出、新穎、富有吸引力,并用良好的界面來(lái)進(jìn)行展示。 通過(guò)photoshop軟件對(duì)圖片處理,通過(guò)使用圖層編輯、文字處理、色彩調(diào)整、濾鏡特效,完成對(duì)圖片的處理。四、應(yīng)收集的資料及參考文獻(xiàn)通過(guò).網(wǎng)站搜索一些自己所需要的圖片素材、背景音樂(lè)等。另外在實(shí)習(xí)過(guò)程中以FLASH 動(dòng)畫(huà)制作課本為主,以課外參考書(shū)FLASH 2004閃客動(dòng)畫(huà)設(shè)計(jì)精粹為輔助來(lái)完成實(shí)習(xí)作品的制作。五、進(jìn)度計(jì)劃 第一周前兩天完成選題及圖片資料的查閱,后三天完成總體結(jié)構(gòu)的安排。第二、三周進(jìn)

4、行素材的配置,MTV的制作,完成FLASH MTV作品。第四周進(jìn)行畢業(yè)論文的輸入與改寫(xiě),對(duì)論文的要求與格式進(jìn)行核對(duì)和檢測(cè),以便達(dá)到最佳效果。教研室主任簽字時(shí)間年 月 日畢業(yè)設(shè)計(jì)(論文)開(kāi)題報(bào)告題目FLASH MTV制作專(zhuān)業(yè)計(jì)算機(jī)多媒體技術(shù)班級(jí)多媒體0701學(xué)生姓名滿(mǎn)超一、文獻(xiàn)綜述(立論依據(jù)) FLASH是由美國(guó)Macromedia公司出品的用于矢量圖編輯和動(dòng)畫(huà)創(chuàng)作的專(zhuān)業(yè)軟件。 FLASH軟件主要用于動(dòng)畫(huà)制作,使用該軟件可以制作出網(wǎng)頁(yè)交互式動(dòng)畫(huà),還可以將一個(gè) 較大的交互式動(dòng)畫(huà)。 FLASH還被廣泛用于多媒體領(lǐng)域,如交互式軟件開(kāi)發(fā)、產(chǎn)品展示等多個(gè)方面。在 Director及Authorware中,

5、都可以導(dǎo)入FLASH動(dòng)畫(huà)。隨著FLASH的廣泛使用,出現(xiàn)了許 多完全使用FLASH制作的多媒體作品。由于FLASH具有支持交互、文件體積小、效果 棒等特性,并且不需要媒體播放器之類(lèi)軟件的支持,因此這樣的多媒體作品取得了很好的效果,應(yīng)用范圍不斷擴(kuò)大。二、研究?jī)?nèi)容及預(yù)期目標(biāo)主要研究 FLASH 動(dòng)畫(huà)制作的基本操作和功能,主要內(nèi)容包括: FLASH的各種繪圖工具及如何使用工具繪制和編輯圖形;圖層、元件、實(shí)例、庫(kù)及場(chǎng)景的各種操作:如何利用 FLASH進(jìn)行文本操作及制作及制作特效文字;如何導(dǎo)入圖形圖像和視頻;創(chuàng)建各種動(dòng)畫(huà)的方法步驟;動(dòng)畫(huà)中聲音的導(dǎo)入及合成;關(guān)于交互式動(dòng)畫(huà)的基礎(chǔ)知識(shí)及操作;創(chuàng)建交互式動(dòng)畫(huà)的

6、方法步驟; FLASH動(dòng)畫(huà)的輸出和發(fā)布。 的平面設(shè)計(jì)功能,它能夠更深的挖掘出一個(gè)設(shè)計(jì)者的潛能,加強(qiáng)產(chǎn)業(yè)化的進(jìn)程。平面設(shè)計(jì)十分注重創(chuàng)意。 當(dāng)今社會(huì)是一個(gè)高速發(fā)展的信息化的社會(huì),F(xiàn)LASH 動(dòng)畫(huà)給人一種良好的視覺(jué)感受, 通過(guò)這種FLASH 動(dòng)畫(huà)這一特殊載體,來(lái)進(jìn)行一種互動(dòng)式的交流,而這一交流過(guò)程要求動(dòng)畫(huà)制作人在動(dòng)畫(huà)制作中融入自己的思想與情感。這就說(shuō)明設(shè)計(jì)人員要有創(chuàng)新的思維模式和手段進(jìn)行創(chuàng)作。 只有這樣,才能與時(shí)俱進(jìn),設(shè)計(jì)出優(yōu)秀的動(dòng)畫(huà)作品。三、研究方案(研究方法)通過(guò)photoshop軟件、畫(huà)圖工具對(duì)圖片處理,通過(guò)使用圖層編輯、文字處理、色彩調(diào)整、濾鏡特效,完成對(duì)圖片的處理。通過(guò)我們的構(gòu)思用 FLA

7、SH 制作出宣揚(yáng)積極向上、用創(chuàng)新意識(shí)的系列MTV, 最后達(dá)到讓作品編輯成冊(cè)為社會(huì)所服務(wù)。四、進(jìn)度計(jì)劃 第一周前兩天完成選題及圖片資料的查閱,后三天完成總體結(jié)構(gòu)的安排。第二周進(jìn) 行素材的配置,MTV的制作。從第二周到第三周的時(shí)間里完成FLASH MTV作品。第四 周進(jìn)行畢業(yè)論文的輸入與改寫(xiě),對(duì)論文的要求與格式進(jìn)行核對(duì)和檢測(cè),以便達(dá)到最佳 效果。指導(dǎo)教師簽字時(shí)間年 月 日摘要 本設(shè)計(jì)是用FLASH MX多媒體制作軟件制作的一個(gè)簡(jiǎn)單的MTV,其主要有兩部分組成,即動(dòng)畫(huà)和音頻兩部分。FLASH MTV與傳統(tǒng)的MTV有所不同,其不同之處就是在聽(tīng)到優(yōu)美音樂(lè)的同時(shí),還可以給人一種視覺(jué)上的新感受。關(guān)鍵詞:FL

8、ASH動(dòng)畫(huà) MIV目錄TOC o 1-3 h u HYPERLINK l _Toc29952 前言 PAGEREF _Toc29952 1 HYPERLINK l _Toc16897 第1章總體架構(gòu) PAGEREF _Toc16897 2 HYPERLINK l _Toc32145 1.1項(xiàng)目規(guī)劃 PAGEREF _Toc32145 2 HYPERLINK l _Toc28442 第2章系統(tǒng)設(shè)計(jì) PAGEREF _Toc28442 3 HYPERLINK l _Toc18948 2.1動(dòng)畫(huà)制作 PAGEREF _Toc18948 3 HYPERLINK l _Toc5672 2.1.1制作片頭

9、動(dòng)畫(huà) PAGEREF _Toc5672 3 HYPERLINK l _Toc6338 2.1.2制作片中動(dòng)畫(huà)(歌詞部分動(dòng)畫(huà)) PAGEREF _Toc6338 5 HYPERLINK l _Toc14889 2.1.3制作片尾動(dòng)畫(huà) PAGEREF _Toc14889 11 HYPERLINK l _Toc20982 2.2音頻 PAGEREF _Toc20982 13 HYPERLINK l _Toc13795 綜合總結(jié) PAGEREF _Toc13795 14 HYPERLINK l _Toc31249 參考文獻(xiàn) PAGEREF _Toc31249 15 HYPERLINK l _Toc18

10、393 致謝 PAGEREF _Toc18393 16前言FLASH是由美國(guó)Macromedia公司出品的用于矢量圖編輯和動(dòng)畫(huà)創(chuàng)作的專(zhuān)業(yè)軟件。FLASH軟件主要用于動(dòng)畫(huà)制作,使用該軟件可以制作出網(wǎng)頁(yè)交互式動(dòng)畫(huà),還可以將一個(gè)較大的交互式動(dòng)畫(huà)。 FLASH還被廣泛用于多媒體領(lǐng)域,如交互式軟件開(kāi)發(fā)、產(chǎn)品展示等多個(gè)方面。隨著FLASH的廣泛使用,出現(xiàn)了許多完全使用FLASH制作的多媒體作品。由于FLASH具有支持交互、文件體積小、效果棒等特性,并且不需要媒體播放器之類(lèi)軟件的支持,因此這樣的多媒體作品取得了很好的效果,應(yīng)用范圍不斷擴(kuò)大。 flash是一個(gè)優(yōu)秀的矢量繪圖與動(dòng)畫(huà)制作軟件,它秉承了矢量繪圖軟件

11、的所有優(yōu)點(diǎn),能制作出聲色俱佳的動(dòng)畫(huà)效果。強(qiáng)大的動(dòng)畫(huà)編輯功能使得設(shè)計(jì)者可以隨心所欲地設(shè)計(jì)出高品質(zhì)的動(dòng)畫(huà),PHOTOSHOP圖片的色彩更加靚麗,使Flash具有更大的設(shè)計(jì)空間。本設(shè)計(jì)主要是用flash MX多媒體制作軟件制作的一個(gè)簡(jiǎn)單的MTV,其主要有兩部分組成,即動(dòng)畫(huà)和音頻兩部分。利用這種多媒體軟件來(lái)制作MTV。用Flash軟件做出的動(dòng)畫(huà)作品,其最大的特點(diǎn)是它能夠把一些矢量圖、位圖和歌詞、文字做成交互性很強(qiáng)的動(dòng)畫(huà),不僅具有視覺(jué)和聽(tīng)覺(jué)的雙重感受,使其更具有趣味性和創(chuàng)造性。第1章 總體架構(gòu)1.1 項(xiàng)目規(guī)劃運(yùn)用flash 制作MTV是一個(gè)非常新穎的項(xiàng)目,給人以視覺(jué)上的全新感受,規(guī)劃系統(tǒng)功能模塊如下:動(dòng)

12、畫(huà)模塊該模塊主要制作MTV所需要的動(dòng)畫(huà)場(chǎng)景。片頭動(dòng)畫(huà)主要是告訴觀眾本MTV歌曲的信息。片中動(dòng)畫(huà)主要是表現(xiàn)歌曲所要表達(dá)的含義。片尾動(dòng)畫(huà)標(biāo)明本MTV的制作目的。音頻模塊該模塊主要是插入MTV的靈魂歌曲。流程圖如圖1所示:總體架構(gòu)總體架構(gòu)音頻模塊動(dòng)畫(huà)模塊音頻模塊動(dòng)畫(huà)模塊片頭動(dòng)畫(huà)片中動(dòng)畫(huà)片尾動(dòng)畫(huà)片頭動(dòng)畫(huà)片中動(dòng)畫(huà)片尾動(dòng)畫(huà)圖1第2章 系統(tǒng)設(shè)計(jì) 2.1動(dòng)畫(huà)制作2.1.1 制作片頭動(dòng)畫(huà)片頭是整個(gè)MTV的開(kāi)始,它顯示了歌曲名稱(chēng)和演唱者以及制作者。1)片頭1“老電影”的制作效果主要是使用“逐幀動(dòng)畫(huà)” 和“循環(huán)播放”來(lái)實(shí)現(xiàn)的,如圖2所示: 圖2片頭1的動(dòng)畫(huà)場(chǎng)景如圖3所示:圖32)片頭2的制作主要是使用“創(chuàng)建文本”

13、和“補(bǔ)間動(dòng)畫(huà)”工具來(lái)實(shí)現(xiàn)的,如圖4所示: 圖4片頭2的動(dòng)畫(huà)場(chǎng)景如圖5所示:圖52.1.2 制作片中動(dòng)畫(huà)(歌詞部分動(dòng)畫(huà))片中動(dòng)畫(huà)是整個(gè)設(shè)計(jì)的表現(xiàn)主體,是從視覺(jué)上感受所要表現(xiàn)的意義與主題。(本部分就不一一列舉每句歌詞的動(dòng)畫(huà)制作了,簡(jiǎn)要的舉幾個(gè)例子)1)“終于還是走到這一天,要奔向各自的世界?!钡膭?dòng)畫(huà)場(chǎng)景如圖6、 圖7所示:圖6圖7其制作主要是使用“引導(dǎo)層動(dòng)畫(huà)”和“補(bǔ)間動(dòng)畫(huà)”來(lái)實(shí)現(xiàn)的,如圖8、圖9所示:圖8圖92)“沒(méi)人能取代記憶中的你,和那段青春歲月” 的動(dòng)畫(huà)場(chǎng)景如圖10、圖11所示:圖10圖11其制作主要是使用 任意變形工具和“補(bǔ)間動(dòng)畫(huà)”來(lái)實(shí)現(xiàn)的,如圖12、圖13所示:圖12圖133)“放心去飛

14、,勇敢的去追,追一切我們未完成的夢(mèng)”的制作主要是使用“逐幀動(dòng)畫(huà)”和“補(bǔ)間動(dòng)畫(huà)”來(lái)實(shí)現(xiàn)的,如圖14所示: 圖14其動(dòng)畫(huà)場(chǎng)景如圖15所示: 圖15 2.1.3制作片尾動(dòng)畫(huà)片尾動(dòng)畫(huà)標(biāo)明本MTV的制作目的,如圖16、圖17所示:圖16圖17其制作主要是使用“創(chuàng)建文本” 和“補(bǔ)間動(dòng)畫(huà)”來(lái)實(shí)現(xiàn)的,如圖18、圖19所示:圖18圖192.2音頻其目的是將其導(dǎo)入的歌曲放置到時(shí)間軸上并播放,如圖20所示:圖20制作過(guò)程:一、將聲音導(dǎo)入到庫(kù)中單擊【文件】【導(dǎo)入】菜單命令,打開(kāi)“導(dǎo)入”對(duì)話(huà)框,選擇要導(dǎo)入的聲音文件。從中選取想要導(dǎo)入的聲音文件后,單擊【打開(kāi)】按鈕。導(dǎo)入的聲音會(huì)自動(dòng)加載到庫(kù)中。二、再給動(dòng)畫(huà)添加聲音1單擊【

15、插入】【圖層】,在時(shí)間軸中為聲音加入一個(gè)新的圖層,以放置聲音。2.選擇一個(gè)圖層名雙擊,改名為“歌曲”便于日后的管理。3.選擇“歌曲”圖層,將聲音從庫(kù)中直接推動(dòng)到場(chǎng)景中,并在第2180擊鼠標(biāo)左鍵,按【F6】鍵插入關(guān)鍵偵。這時(shí)就看到聲音波形圖。三、設(shè)置聲音同步。1.單擊聲音所在圖層的關(guān)鍵偵。2.在“屬性”面板的“同步”中設(shè)置聲音播放的方式。3.最后在“循環(huán)”文本框中輸入聲音循環(huán)的次數(shù)。綜合總結(jié)通過(guò)這一個(gè)月的實(shí)習(xí),我對(duì)FLASH MX軟件有了更深一步的了解。開(kāi)拓了眼界,加深了認(rèn)識(shí),使我知道FLASH不但可以在視覺(jué)上給人一種全新享受外,還可以在享受全新的視覺(jué)的同時(shí),還可以聽(tīng)到優(yōu)美的音樂(lè)??傊ㄟ^(guò)這次

16、FLASH的實(shí)習(xí),使我深深地感覺(jué)到了自己在專(zhuān)業(yè)認(rèn)識(shí)上的欠缺和不足,自己的很多地方都急需挖掘和深化,今后我一定注重培養(yǎng)自己的審美情操,加強(qiáng)審美觀的培養(yǎng),多加開(kāi)拓自己的視野,使自己的創(chuàng)新意識(shí)不斷的得到加強(qiáng),對(duì)FLASH更是要繼續(xù)不斷的深化學(xué)習(xí)。FLASH是一個(gè)功能強(qiáng)大的動(dòng)畫(huà)創(chuàng)作工具,僅僅掌握一些表面知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)踐中不斷探索和總結(jié),并且不斷激發(fā)自己的想像力和創(chuàng)意,才能逐步提高自己的創(chuàng)作水平,進(jìn)而制作優(yōu)秀的作品。通過(guò)實(shí)習(xí)我不僅領(lǐng)會(huì)了基本的思考方式,掌握了很多的通用方法,而且還明白了許多道理。這次作品的完成是由我,和張明兩人共同完成的,這就需要兩人的共同努力, 發(fā)揮各自的優(yōu)勢(shì),發(fā)揮豐富的想

17、象力與創(chuàng)新意識(shí). 在設(shè)計(jì)過(guò)程中我們相互討論,相互彌補(bǔ)不足,這樣不僅增強(qiáng)了我們的個(gè)人能力,而且使我們認(rèn)識(shí)到團(tuán)隊(duì)精神的重要性,為我們以后進(jìn)入公司工作培養(yǎng)這種精神打下良好的基礎(chǔ)。參考文獻(xiàn)1、殷虹 郝琨 劉東 劉卉FLASH 動(dòng)畫(huà)制作(MX 2004中文版)中國(guó)鐵道出版社2、崔蘭耀 FLASH MX 2004閃客動(dòng)畫(huà)設(shè)計(jì)精粹 上??茖W(xué)出版社致謝經(jīng)過(guò)一個(gè)來(lái)月的忙碌和工作,本次畢業(yè)設(shè)計(jì)已經(jīng)接近尾聲,作為一個(gè)大專(zhuān)生的畢業(yè)設(shè)計(jì),由于經(jīng)驗(yàn)的匱乏,難免有許多考慮不周全的地方,如果沒(méi)有老師的督促指導(dǎo),以及同學(xué)們的支持,想要完成這個(gè)設(shè)計(jì)是難以想象的。 在這里首先要感謝我的指導(dǎo)老師何武超老師。老師在整個(gè)過(guò)程中都給予了我

18、悉心的指導(dǎo)。除了敬佩老師的專(zhuān)業(yè)水平外,他們的治學(xué)嚴(yán)謹(jǐn)和科學(xué)研究的精神也是我永遠(yuǎn)學(xué)習(xí)的榜樣,并將積極影響我今后的學(xué)習(xí)和工作。 其次要感謝和我一起作畢業(yè)設(shè)計(jì)的張明同學(xué),他在本次設(shè)計(jì)中勤奮工作,克服了許多困難來(lái)完成此次畢業(yè)設(shè)計(jì),并承擔(dān)很大的工作量。如果沒(méi)有他的努力工作,此次設(shè)計(jì)的完成將變得非常困難。然后還要感謝大學(xué)兩年來(lái)所有的老師,為我們打下技術(shù)方面知識(shí)的基礎(chǔ);同時(shí)還要感謝所有的同學(xué)們,正是因?yàn)橛辛四銈兊闹С趾凸膭?lì)。此次畢業(yè)設(shè)計(jì)才會(huì)順利完成。最后感謝學(xué)院我的母校滄州職業(yè)技術(shù)學(xué)院三年來(lái)對(duì)我的大力培養(yǎng)。附錄資料:不需要的可以自行刪除 perl函數(shù)應(yīng)用一、進(jìn)程處理函數(shù)1、進(jìn)程啟動(dòng)函數(shù)函數(shù)名eval調(diào)用語(yǔ)法

19、eval(string)解說(shuō)將string看作Perl語(yǔ)句執(zhí)行。正確執(zhí)行后,系統(tǒng)變量$為空串,如果有錯(cuò)誤,$中為錯(cuò)誤信息。例子$print = print (hello,worldn);eval ($print);結(jié)果輸出hello, world函數(shù)名system調(diào)用語(yǔ)法system(list)解說(shuō)list中第一個(gè)元素為程序名,其余為參數(shù)。system啟動(dòng)一個(gè)進(jìn)程運(yùn)行程序并等待其結(jié)束,程序結(jié)束后錯(cuò)誤代碼左移八位成為返回值。例子proglist = (echo, hello,world!);system(proglist);結(jié)果輸出hello, world!函數(shù)名fork調(diào)用語(yǔ)法procid =

20、 fork();解說(shuō)創(chuàng)建程序的兩個(gè)拷貝-父進(jìn)程和子進(jìn)程-同時(shí)運(yùn)行。子進(jìn)程返回零,父進(jìn)程返回非零值,此值為子程序的進(jìn)程ID號(hào)。例子$retval = fork();if ($retval = 0) # this is the child process exit; # this terminates the child process else # this is the parent process結(jié)果輸出無(wú)函數(shù)名pipe調(diào)用語(yǔ)法pipe (infile, outfile);解說(shuō)與fork合用,給父進(jìn)程和子進(jìn)程提供通信的方式。送到outfile文件變量的信息可以通過(guò)infile文件變量讀取。步

21、驟:1、調(diào)用pipe2、用fork將程序分成父進(jìn)程和子進(jìn)程3、一個(gè)進(jìn)程關(guān)掉infile,另一個(gè)關(guān)掉outfile例子pipe (INPUT, OUTPUT);$retval = fork();if ($retval != 0) # this is the parent process close (INPUT); print (Enter a line of input:n); $line = ; print OUTPUT ($line); else # this is the child process close (OUTPUT); $line = ; print ($line); exi

22、t (0);結(jié)果輸出$programEnter a line of input:Here is a test lineHere is a test line$函數(shù)名exec調(diào)用語(yǔ)法exec (list);解說(shuō)與system類(lèi)似,區(qū)別是啟動(dòng)新進(jìn)程前結(jié)束當(dāng)前程序。常與fork合用,當(dāng)fork分成兩個(gè)進(jìn)程后,子進(jìn)程用exec啟動(dòng)另一個(gè)程序。例子 結(jié)果輸出函數(shù)名syscall調(diào)用語(yǔ)法syscall (list);解說(shuō)調(diào)用系統(tǒng)函數(shù),list第一個(gè)元素是系統(tǒng)調(diào)用名,其余為參數(shù)。如果參數(shù)是數(shù)字,就轉(zhuǎn)化成C的整型數(shù)(type int)。否則傳遞字符串的指針。詳見(jiàn)UNIX的幫助或Perl文檔。使用syscall

23、必須包含文件syscall.pl,即:require (syscall.ph); 例子結(jié)果輸出2、進(jìn)程終止函數(shù)函數(shù)名Die調(diào)用語(yǔ)法die (message);解說(shuō)終止程序并向STDERR輸出錯(cuò)誤信息。message可以為字符串或列表。如果最后一個(gè)參數(shù)不包含換行符,則程序文件名和行號(hào)也被輸出。例子die (Cannot open input file);結(jié)果輸出Cannot open input file at myprog line 6.函數(shù)名warn調(diào)用語(yǔ)法warn (message);解說(shuō)與die類(lèi)似,區(qū)別是不終止程序。例子warn(Danger! Danger!n);結(jié)果輸出Danger

24、! Danger!函數(shù)名exit調(diào)用語(yǔ)法exit (retcode);解說(shuō)終止程序并指定返回值。例子exit(2);結(jié)果輸出無(wú)函數(shù)名kill調(diào)用語(yǔ)法kill (signal, proclist);解說(shuō)給一組進(jìn)程發(fā)送信號(hào)。signal是發(fā)送的數(shù)字信號(hào),9為殺掉進(jìn)程。proclist是進(jìn)程ID列表。詳見(jiàn)kill的UNIX幫助。例子結(jié)果輸出3、進(jìn)程控制函數(shù)函數(shù)名sleep調(diào)用語(yǔ)法sleep (time);解說(shuō)將程序暫停一段時(shí)間。time是停止的秒數(shù)。返回值為實(shí)際停止的秒數(shù)。例子sleep (5);結(jié)果輸出無(wú)函數(shù)名wait調(diào)用語(yǔ)法procid = wait();解說(shuō)暫停程序執(zhí)行,等待子進(jìn)程終止。不需要

25、參數(shù),返回值為子進(jìn)程ID,如果沒(méi)有子進(jìn)程,返回-1。例子結(jié)果輸出函數(shù)名waitpid調(diào)用語(yǔ)法waitpid (procid, waitflag);解說(shuō)暫停程序執(zhí)行,等待特定的子進(jìn)程終止。procid為等待的進(jìn)程ID例子$procid = fork();if ($procid = 0) # this is the child process print (this line is printed firstn); exit(0); else # this is the parent process waitpid ($procid, 0); print (this line is printed

26、 lastn);結(jié)果輸出$ programthis line is printed firstthis line is printed last$4、其它控制函數(shù)函數(shù)名caller調(diào)用語(yǔ)法subinfo = caller();解說(shuō)返回調(diào)用者的程序名和行號(hào),用于Perl Debugger。返回值為三元素的列表:1、調(diào)用處的包名2、調(diào)用者文件名3、調(diào)用處的行號(hào)例子結(jié)果輸出函數(shù)名chroot調(diào)用語(yǔ)法chroot (dir);解說(shuō)改變程序的根目錄,詳見(jiàn)chroot幫助。例子結(jié)果輸出函數(shù)名local調(diào)用語(yǔ)法local($variable);解說(shuō)在語(yǔ)句塊(由大括號(hào)包圍的語(yǔ)句集合)中定義局域變量,僅在此語(yǔ)句

27、塊中起作用,對(duì)其的改變不對(duì)塊外同名變量造成影響。千萬(wàn)不要在循環(huán)中使用,否則每次循環(huán)都定義一個(gè)新的局域變量!例子結(jié)果輸出函數(shù)名times調(diào)用語(yǔ)法timelist = times解說(shuō)返回該程序及所有子進(jìn)程消耗的工作時(shí)間。返回值為四個(gè)浮點(diǎn)數(shù)的列表:1、程序耗用的用戶(hù)時(shí)間2、程序耗用的系統(tǒng)時(shí)間3、子進(jìn)程耗用的用戶(hù)時(shí)間4、子進(jìn)程耗用的系統(tǒng)時(shí)間例子結(jié)果輸出二、數(shù)學(xué)函數(shù)函數(shù)名sin調(diào)用語(yǔ)法retval = sin (value);解說(shuō)參數(shù)為弧度值。函數(shù)名cos調(diào)用語(yǔ)法retval = cos (value);解說(shuō)參數(shù)為弧度值。函數(shù)名atan2調(diào)用語(yǔ)法retval = atan2 (value1, value

28、2);解說(shuō)運(yùn)算并返回value1除以value2結(jié)果的arctan值,單位為弧度,范圍在-PIPI。應(yīng)用例:角度轉(zhuǎn)化成弧度子程序。sub degrees_to_radians local ($degrees) = _; local ($radians);11: $radians = atan2(1,1) * $degrees / 45;函數(shù)名sqrt調(diào)用語(yǔ)法retval = sqrt (value);解說(shuō)平方根函數(shù)。value為非負(fù)數(shù)。函數(shù)名exp調(diào)用語(yǔ)法retval = exp (value);解說(shuō)返回e的value次方。函數(shù)名log調(diào)用語(yǔ)法retval = log (value);解說(shuō)以e

29、為底的自然對(duì)數(shù)。函數(shù)名abs調(diào)用語(yǔ)法retval = abs (value);解說(shuō)絕對(duì)值函數(shù)。(Perl 4中沒(méi)有)函數(shù)名rand調(diào)用語(yǔ)法retval = rand (num);解說(shuō)隨機(jī)數(shù)函數(shù),返回0和整數(shù)num之間的一個(gè)浮點(diǎn)數(shù)。函數(shù)名srand調(diào)用語(yǔ)法srand (value);解說(shuō)初始化隨機(jī)數(shù)生成器。保證每次調(diào)用rand真正隨機(jī)。三、字符串處理函數(shù)函數(shù)名index調(diào)用語(yǔ)法position = index (string, substring, position);解說(shuō)返回子串substring在字符串string中的位置,如果不存在則返回-1。參數(shù)position是可選項(xiàng),表示匹配之前跳過(guò)

30、的字符數(shù),或者說(shuō)從該位置開(kāi)始匹配。函數(shù)名rindex調(diào)用語(yǔ)法position = rindex (string, substring, position);解說(shuō)與index類(lèi)似,區(qū)別是從右端匹配。函數(shù)名length調(diào)用語(yǔ)法num = length (string);解說(shuō)返回字符串長(zhǎng)度,或者說(shuō)含有字符的數(shù)目。函數(shù)名pos調(diào)用語(yǔ)法offset = pos(string);解說(shuō)返回最后一次模式匹配的位置。函數(shù)名substr調(diào)用語(yǔ)法substr (expr, skipchars, length)解說(shuō)抽取字符串(或表達(dá)式生成的字符串)expr中的子串,跳過(guò)skipchars個(gè)字符,或者說(shuō)從位置skipc

31、hars開(kāi)始抽取子串(第一個(gè)字符位置為0),子串長(zhǎng)度為length,此參數(shù)可忽略,意味著取剩下的全部字符。當(dāng)此函數(shù)出現(xiàn)在等式左邊時(shí),expr必須為變量或數(shù)組元素,此時(shí)其中部分子串被等式右邊的值替換。函數(shù)名study調(diào)用語(yǔ)法study (scalar);解說(shuō)用一種內(nèi)部格式提高變量的訪問(wèn)速度,同一時(shí)刻只對(duì)一個(gè)變量起作用。函數(shù)名lcuc調(diào)用語(yǔ)法retval = lc(string);retval = uc(string);解說(shuō)將字符串全部轉(zhuǎn)換成小/大寫(xiě)字母。函數(shù)名lcfirstucfirst調(diào)用語(yǔ)法retval = lcfirst(string);retval = ucfirst(string);解

32、說(shuō)將第一個(gè)字母轉(zhuǎn)換成小/大寫(xiě)。函數(shù)名quotameta調(diào)用語(yǔ)法newstring = quotemeta(oldstring);解說(shuō)將非單詞的字母前面加上反斜線(xiàn)()。語(yǔ)句 : $string = quotemeta($string);等效于:$string = s/(W)/$1/g;常用于模式匹配操作中,確保字符串中沒(méi)有字符被看作匹配操作符。函數(shù)名join調(diào)用語(yǔ)法join (joinstr, list);解說(shuō)把字符串列表(數(shù)組)組合成一個(gè)長(zhǎng)的字符串,在每?jī)蓚€(gè)列表元素間插入串joinstr。函數(shù)名sprintf調(diào)用語(yǔ)法sprintf (string, fields);解說(shuō)與printf類(lèi)似,區(qū)別

33、是結(jié)果不輸出到文件,而作為返回值賦給變量。例子$num = 26;$outstr = sprintf(%d = %x hexadecimal or %o octaln,$num, $num, $num);print ($outstr);結(jié)果輸出26 = 1a hexadecimal or 32 octal四、標(biāo)量轉(zhuǎn)換函數(shù)函數(shù)名chop調(diào)用語(yǔ)法$lastchar = chop (var);解說(shuō)var可為變量或數(shù)組,當(dāng)var為變量時(shí),最后一個(gè)字符被刪除并賦給$lastchar,當(dāng)var為數(shù)組/列表時(shí),所有元素的最后一個(gè)字符被刪除,最后一個(gè)元素的最后一個(gè)字母賦給$lastchar。函數(shù)名chomp調(diào)

34、用語(yǔ)法result = chomp(var);解說(shuō)檢查字符串或字符串列表中元素的最后一個(gè)字符是否為由系統(tǒng)變量$/定義的行分隔符,如果是就刪除。返回值為實(shí)際刪除的字符個(gè)數(shù)。函數(shù)名crypt調(diào)用語(yǔ)法result = crypt (original, salt);解說(shuō)用DES算法加密字符串,original是將要加密的字符串,salt是兩個(gè)字符的字符串,定義如何改變DES算法,以使更難解碼。返回值為加密后的串。函數(shù)名hex調(diào)用語(yǔ)法decnum = hex (hexnum);解說(shuō)將十六進(jìn)制數(shù)(字符串形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名int調(diào)用語(yǔ)法intnum = int (floatnum);解說(shuō)將浮點(diǎn)數(shù)舍

35、去小數(shù)部分轉(zhuǎn)化為整型數(shù)。函數(shù)名oct調(diào)用語(yǔ)法decnum = oct (octnum);解說(shuō)將八進(jìn)制數(shù)(字符串形式)或十六進(jìn)制數(shù)(0 x.形式)轉(zhuǎn)化為十進(jìn)制數(shù)。函數(shù)名ord調(diào)用語(yǔ)法asciival = ord (char);解說(shuō)返回單個(gè)字符的ASCII值,與PASCAL中同名函數(shù)類(lèi)似。函數(shù)名chr調(diào)用語(yǔ)法$char = chr (asciival);解說(shuō)返回ASCII值的相應(yīng)字符,與PASCAL中同名函數(shù)類(lèi)似。函數(shù)名pack調(diào)用語(yǔ)法formatstr = pack(packformat, list);解說(shuō)把一個(gè)列表或數(shù)組以在實(shí)際機(jī)器存貯格式或C等編程語(yǔ)言使用的格式轉(zhuǎn)化(包裝)到一個(gè)簡(jiǎn)單變量中。

36、參數(shù)packformat包含一個(gè)或多個(gè)格式字符,列表中每個(gè)元素對(duì)應(yīng)一個(gè),各格式字符間可用空格或tab隔開(kāi),因?yàn)閜ack忽略空格。除了格式a、A和外,重復(fù)使用一種格式多次可在其后加個(gè)整數(shù),如: $twoints = pack (i2, 103, 241);把同一格式應(yīng)用于所有的元素則加個(gè)*號(hào),如: $manyints = pack (i*, 14, 26, 11, 83);對(duì)于a和A而言,其后的整數(shù)表示要?jiǎng)?chuàng)建的字符串長(zhǎng)度,重復(fù)方法如下: $strings = pack (a6 x 2, test1, test2);格式的情況比較特殊,其后必須加個(gè)整數(shù),該數(shù)表示字符串必須的長(zhǎng)度,如果長(zhǎng)度不夠,則用

37、空字符(null)補(bǔ)足,如: $output = pack (a 6 a, test, test2);pack函數(shù)最常見(jiàn)的用途是創(chuàng)建可與C程序交互的數(shù)據(jù),例如C語(yǔ)言中字符串均以空字符(null)結(jié)尾,創(chuàng)建這樣的數(shù)據(jù)可以這樣做: $Cstring = pack (ax, $mystring);下表是一些格式字符與C中數(shù)據(jù)類(lèi)型的等價(jià)關(guān)系:字符 等價(jià)C數(shù)據(jù)類(lèi)型CcharddoubleffloatiintIunsigned int (or unsigned)llongLunsigned longsshortSunsigned short完整的格式字符見(jiàn)下表。 格式字符 描述a用空字符(null)補(bǔ)足的

38、字符串A用空格補(bǔ)足的字符串b位串,低位在前B位串,高位在前c帶符號(hào)字符(通常-128127)C無(wú)符號(hào)字符(通常8位)d雙精度浮點(diǎn)數(shù)f單精度浮點(diǎn)數(shù)h十六進(jìn)制數(shù)串,低位在前H十六進(jìn)制數(shù)串,高位在前i帶符號(hào)整數(shù)I無(wú)符號(hào)整數(shù)l帶符號(hào)長(zhǎng)整數(shù)L無(wú)符號(hào)長(zhǎng)整數(shù)n網(wǎng)絡(luò)序短整數(shù)N網(wǎng)絡(luò)序長(zhǎng)整數(shù)p字符串指針s帶符號(hào)短整數(shù)S無(wú)符號(hào)短整數(shù)u轉(zhuǎn)化成uuencode格式vVAX序短整數(shù)VVAX序長(zhǎng)整數(shù)x一個(gè)空字節(jié)X回退一個(gè)字節(jié)以空字節(jié)(null)填充函數(shù)名unpack調(diào)用語(yǔ)法list = unpack (packformat, formatstr);解說(shuō)unpack與pack功能相反,將以機(jī)器格式存貯的值轉(zhuǎn)化成Perl中值的

39、列表。其格式字符與pack基本相同(即上表),不同的有:A格式將機(jī)器格式字符串轉(zhuǎn)化為Perl字符串并去掉尾部所有空格或空字符;x為跳過(guò)一個(gè)字節(jié);為跳過(guò)一些字節(jié)到指定的位置,如4為跳過(guò)4個(gè)字節(jié)。下面看一個(gè)和X合同的例子: $longrightint = unpack (* X4 L, $packstring);此語(yǔ)句將最后四個(gè)字節(jié)看作無(wú)符號(hào)長(zhǎng)整數(shù)進(jìn)行轉(zhuǎn)化。下面看一個(gè)對(duì)uuencode文件解碼的例子:1 : #!/usr/local/bin/perl2 : 3 : open (CODEDFILE, /u/janedoe/codefile) |4 : die (Cant open input fil

40、e);5 : open (OUTFILE, outfile) |6 : die (Cant open output file);7 : while ($line = ) 8 : $decoded = unpack(u, $line);9 : print OUTFILE ($decoded);10: 11: close (OUTFILE);12: close (CODEDFILE); 當(dāng)將pack和unpack用于uuencode時(shí),要記住,雖然它們與UNIX中的uuencode、uudecode工具算法相同,但并不提供首行和末行,如果想用uudecode對(duì)由pack的輸出創(chuàng)建的文件進(jìn)行解碼,必

41、須也把首行和末行輸出(詳見(jiàn)UNIX中uuencode幫助)。函數(shù)名vec調(diào)用語(yǔ)法retval = vec (vector, index, bits);解說(shuō)顧名思義,vec即矢量(vector)函數(shù),它把簡(jiǎn)單變量vector的值看作多塊(維)數(shù)據(jù),每塊含一定數(shù)目的位,合起來(lái)即一個(gè)矢量數(shù)據(jù)。每次的調(diào)用訪問(wèn)其中一塊數(shù)據(jù),可以讀取,也可以寫(xiě)入。參數(shù)index就象數(shù)組下標(biāo)一樣,提出訪問(wèn)哪一塊,0為第一塊,依次類(lèi)推,要注意的是訪問(wèn)次序是從右到左的,即第一塊在最右邊。參數(shù)bits指定每塊中的位數(shù),可以為1,2,4,8,16或32。例子1 : #!/usr/local/bin/perl2 : 3 : $vec

42、tor = pack (B*, 11010011);4 : $val1 = vec ($vector, 0, 4);5 : $val2 = vec ($vector, 1, 4);6 : print (high-to-low order values: $val1 and $val2n);7 : $vector = pack (b*, 11010011);8 : $val1 = vec ($vector, 0, 4);9 : $val2 = vec ($vector, 1, 4);10: print (low-to-high order values: $val1 and $val2n); 結(jié)

43、果high-to-low order values: 3 and 13low-to-high order values: 11 and 12函數(shù)名defined調(diào)用語(yǔ)法retval = defined (expr);解說(shuō)判斷一個(gè)變量、數(shù)組或數(shù)組的一個(gè)元素是否已經(jīng)被賦值。expr為變量名、數(shù)組名或一個(gè)數(shù)組元素。如果已定義,返回真,否則返回假。函數(shù)名undef調(diào)用語(yǔ)法retval = undef (expr);解說(shuō)取消變量、數(shù)組或數(shù)組元素甚至子程序的定義,回收其空間。返回值始終為未定義值,此值與空串等效。五、數(shù)組和列表函數(shù)函數(shù)名grep調(diào)用語(yǔ)法foundlist = grep (pattern,

44、searchlist);解說(shuō)與同名的UNIX查找工具類(lèi)似,grep函數(shù)在列表中抽取與指定模式匹配的元素,參數(shù)pattern為欲查找的模式,返回值是匹配元素的列表。例子list = (This, is, a, test);foundlist = grep(/tT/, list);結(jié)果foundlist = (This, test);函數(shù)名splice調(diào)用語(yǔ)法retval = splice (array, slipelements, length, newlist);解說(shuō)拼接函數(shù)可以向列表(數(shù)組)中間插入元素、刪除子列表或替換子列表。參數(shù)skipelements是拼接前跳過(guò)的元素?cái)?shù)目,length

45、是被替換的元素?cái)?shù),newlist是將要拼接進(jìn)來(lái)的列表。當(dāng)newlist的長(zhǎng)度大于length時(shí),后面的元素自動(dòng)后移,反之則向前縮進(jìn)。因此,當(dāng)length=0時(shí),就相當(dāng)于向列表中插入元素,而形如語(yǔ)句splice (array, -1, 0, Hello);則向數(shù)組末尾添加元素。而當(dāng)newlist為空時(shí)就相當(dāng)于刪除子列表,這時(shí),如果length為空,就從第skipelements個(gè)元素后全部刪除,而刪除最后一個(gè)元素則為:splice (array, -1);這種情況下,返回值為被刪去的元素列表。函數(shù)名shift調(diào)用語(yǔ)法element = shift (arrayvar);解說(shuō)刪去數(shù)組第一個(gè)元素,剩下元素前移,返回被刪去的元素。不加參數(shù)時(shí),缺省地對(duì)ARGV進(jìn)行操作。函數(shù)名unshift調(diào)用語(yǔ)法count = unshift (arrayver, elements);解說(shuō)作用與shift相反,在數(shù)組arr

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論