久久综合色一综合色88欧美|久久er热在这里只有精品66|国产福利一区二区不卡|日本精品动漫二区三区

    1. <address id="l3apk"><var id="l3apk"><source id="l3apk"></source></var></address>

      給初學(xué)ActionScript者的建議一

      時(shí)間:2013-07-25 11:45:03 ActionScript 我要投稿

      給初學(xué)ActionScript者的建議(一)

      給初學(xué)ActionScript者的建議(一)
      在論壇當(dāng)斑竹時(shí)間長(zhǎng)了,經(jīng)常會(huì)碰到有朋友提出這樣的問(wèn)題:我是菜鳥(niǎo),請(qǐng)問(wèn)高手,AS到底該怎么學(xué)?我自認(rèn)算不上高手,但三年的AS編程經(jīng)驗(yàn),多少也可以算半個(gè)老手(應(yīng)了藍(lán)色那句話:沒(méi)有菜鳥(niǎo)和高手之分,只有新手和老手之別),之所以這么說(shuō),就是為了先表明立場(chǎng),在網(wǎng)上混了這些時(shí)間,國(guó)內(nèi)的AS頂尖高手我大都還算認(rèn)識(shí),自知尚無(wú)資格與他們比肩,之所以恬不知恥撰此一文,實(shí)在是不忍看著眾多初學(xué)者因?yàn)槊恢鴮W(xué)習(xí)的門(mén)路而苦苦摸索抑或干脆放棄,文中所述均為筆者個(gè)人愚見(jiàn),有欠妥之處歡迎探討。另外,非常感謝AOL,他提供了文章中用到的一些很重要的信息。

      一、什么是AcionScript?
      隨手翻開(kāi)一本技術(shù)類書(shū)籍,第一章第一節(jié)多半以“What's xxxx”做標(biāo)題,要學(xué)習(xí)學(xué)一樣技術(shù),當(dāng)然最先要弄清它是什么。用最簡(jiǎn)單的一句話定義:AS是一種腳本語(yǔ)言。

      這句話里有兩個(gè)關(guān)鍵詞:
      一、語(yǔ)言:所有的計(jì)算機(jī)語(yǔ)言都是相通的(包括匯編語(yǔ)言、中級(jí)語(yǔ)言、高級(jí)語(yǔ)言),這意味著如果你曾經(jīng)系統(tǒng)的學(xué)習(xí)過(guò)其他的某種計(jì)算機(jī)語(yǔ)言,那么AS入門(mén)將變得非常容易。
      二、腳本:這說(shuō)明AS是一種解釋型語(yǔ)言(或稱為腳本語(yǔ)言)。它具備了解釋型語(yǔ)言的優(yōu)點(diǎn):快速開(kāi)發(fā),動(dòng)態(tài)性,學(xué)習(xí)門(mén)檻低等等,同時(shí)它也繼承了相應(yīng)的缺點(diǎn):最主要的兩個(gè)缺點(diǎn)是效率低下和源代碼外露。這也是讓當(dāng)今Flash開(kāi)發(fā)者極為頭痛的兩個(gè)問(wèn)題,效率低下,意味著Flash無(wú)法有效的完成一些復(fù)雜的算法(就拿遞歸來(lái)說(shuō),F(xiàn)lash中僅允許256層深度的遞歸)。而源代碼外露,則讓Flash作者的版權(quán)無(wú)法得到有效的保護(hù),國(guó)內(nèi)外很多著名的反編譯軟件都可以讓Flash中的程序代碼無(wú)處遁形。盡管如此,畢竟瑕不掩瑜,F(xiàn)lash AS仍然是一種簡(jiǎn)單易用,功能強(qiáng)大的腳本語(yǔ)言,高超的AS編程技巧+良好的美工+優(yōu)秀的創(chuàng)意可以打造出許許多多令人瞠目結(jié)舌的作品:絢麗的特效,趣味性極強(qiáng)的的游戲,功能強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序....然而,這一切都是要從最基礎(chǔ)到如變量、函數(shù)開(kāi)始(當(dāng)然,如果你有編程基礎(chǔ)那就另當(dāng)別論),在宏偉的大廈也是一磚一瓦建設(shè)起來(lái)的,不是嗎?

      二、解釋型?編譯型?跨平臺(tái)?

      可能有朋友注意到,剛才談到Flash的源代碼外露的問(wèn)題時(shí),有這樣一句話“很多著名的反編譯軟件....”,即曰“解釋”,又何以“反編譯”?并非是我出爾反爾,F(xiàn)lash AS的的確確是通過(guò)解釋執(zhí)行的,而用來(lái)解釋+執(zhí)行的工具,就是大名鼎鼎、擁有98%瀏覽器占有率的Flash Player。然而,在你把源程序放心交給Flash Player去執(zhí)行之前,必須要經(jīng)過(guò)一個(gè)“編譯”的過(guò)程,它將源代碼轉(zhuǎn)換成一種可以被FP識(shí)別的標(biāo)簽(tag)。而這些標(biāo)簽被以ZIP方式壓縮存儲(chǔ)在.swf格式的文件中。當(dāng)然,一個(gè).swf文件中除了包含AS,還有圖形、聲音等資源。在“解釋”之前先進(jìn)行“編譯”并非是多此一舉,編譯的好處主要有三個(gè):

      一、經(jīng)過(guò)編譯后的源代碼,以標(biāo)簽(稱為“目標(biāo)代碼”)的形式存在,更容易被Flash Player識(shí)別,因而可以提高解釋速度。
      二、編譯過(guò)程可以預(yù)先檢測(cè)程序中的語(yǔ)法錯(cuò)誤,并給出適當(dāng)?shù)腻e(cuò)誤信息,方便調(diào)試。
      三、編譯過(guò)程也是代碼壓縮的過(guò)程,編譯后的代碼更加精簡(jiǎn)。

      這么說(shuō)來(lái),把AS稱為一種純粹的解釋型語(yǔ)言就有失妥當(dāng)了,我們可以把它歸類為一種“混合型”語(yǔ)言;旌闲驼Z(yǔ)言的特點(diǎn)是,源代碼先經(jīng)過(guò)編譯,生成一種“中間代碼”,在由相應(yīng)的平臺(tái)(Flash Player)去解釋執(zhí)行中間代碼;旌闲驼Z(yǔ)言中的佼佼者當(dāng)屬現(xiàn)在同樣火熱的Java語(yǔ)言:Java語(yǔ)言的源代碼(.java)經(jīng)過(guò)編譯,得到字節(jié)碼(.class),在由平臺(tái)(JVM)去解釋執(zhí)行字節(jié)碼。不幸的是,混合型語(yǔ)言的這種這種“編譯”過(guò)程通常是可逆的,無(wú)論是java還是flash,都可以根據(jù)其中間代碼,反編譯得到源代碼。而且,反編譯swf的難度要遠(yuǎn)遠(yuǎn)低于class,而在編譯過(guò)程中加密要復(fù)雜的多,這也就是為什么如今flash反編譯軟件橫行的原因。

      Flash Player的另一個(gè)優(yōu)勢(shì)是提供了跨平臺(tái)性,無(wú)論何種平臺(tái),只要擁有內(nèi)嵌Flash Player的瀏覽器或是獨(dú)立的Flash Player播放器,就可以欣賞Flash,而swf文件本身不需要任何的改變,不同的只是Flash Player在各個(gè)平臺(tái)的實(shí)現(xiàn)方式而已。這一點(diǎn)也是它能夠廣泛應(yīng)用于互聯(lián)網(wǎng)的原因之一。
      可能有的朋友想到Flash的另一種播放方式,即Projector方式,通常我們所見(jiàn)到的是一個(gè).exe文件。然而需要注意的是,以Projector方式發(fā)布的Flash,是不具備跨平臺(tái)能力的。只要明白了Projector的原理,就可以很容易理解這一點(diǎn),其實(shí)Projector僅僅是簡(jiǎn)單的將一個(gè)獨(dú)立的Flash Player播放器和swf文件整合,前面提到,不同平臺(tái)的Flash Player實(shí)現(xiàn)不同,因此,被整合到Projector中的swf無(wú)法使用不同的Flash Player播放,自然也就失去了其跨平臺(tái)性。Projector真正的好處在于,可以讓原本沒(méi)有Flash Player的機(jī)器,在不安裝FP的情況下,瀏覽Flash。其效果大致相當(dāng)于你去買(mǎi)DVD光碟,但是你沒(méi)有DVD機(jī),因此賣(mài)光碟的小販免費(fèi)送了你一臺(tái)DVD機(jī)一樣。當(dāng)然,現(xiàn)實(shí)中不可能有這樣的好事。:)

      三、學(xué)習(xí)AS需要不需要有編程基礎(chǔ)?如果需要,該去學(xué)習(xí)那種語(yǔ)言?

      這是一個(gè)經(jīng)常聽(tīng)到的問(wèn)題。我前面曾經(jīng)提到,如果你有著其他語(yǔ)言的.編程基礎(chǔ),學(xué)習(xí)AS將變成一件非常容易的事。但如果沒(méi)有呢?是不是會(huì)很困難?答案是否定的。

      總的來(lái)說(shuō),AS是一種相對(duì)比較簡(jiǎn)單的語(yǔ)言,甚至你可以用它來(lái)作為你進(jìn)入編程世界的第一步。如果你有著c/java/js的編程經(jīng)驗(yàn),你將會(huì)發(fā)現(xiàn)AS只是你曾經(jīng)學(xué)習(xí)并掌握的知識(shí)的一個(gè)子集,你面對(duì)的僅僅是不同的API,僅此而已。然而,如果你的目的只是為了學(xué)習(xí)AS,那你完全沒(méi)有必要為了它先去學(xué)習(xí)其他任何一種語(yǔ)言,這就像你為了弄明白1+1=2,而費(fèi)盡九牛二虎之力去研究2+2=4一樣,本末倒置。你現(xiàn)在所要做的,就是從最基礎(chǔ)開(kāi)始。何謂基礎(chǔ)?變量、數(shù)據(jù)類型、運(yùn)算符等等都算是基礎(chǔ),學(xué)了一段時(shí)間編程卻仍然搞不清楚i++與++i的區(qū)別的人不在少數(shù)。不要小看它們,對(duì)基礎(chǔ)概念掌握的不牢固,可能會(huì)為你將來(lái)的編程經(jīng)歷造成重大的困擾,正所謂千里之堤,潰于蟻穴。在這個(gè)時(shí)候,你可能需要一本書(shū)來(lái)幫助你,筆者極力推薦下面這本書(shū):

      看到他的封面,你就知道這本書(shū)是由鼎鼎大名的O'reilly公司出版。如今,O'reilly公司的出版物儼然已成為計(jì)算機(jī)技術(shù)圖書(shū)的標(biāo)準(zhǔn),看到了O'reilly的標(biāo)志,就等于看到了質(zhì)量的保證。
      這本書(shū)可以說(shuō)是Flash ActionScript的絕佳入門(mén)書(shū)籍,書(shū)中系統(tǒng)地闡述了AS中所有的基礎(chǔ)內(nèi)容,包括:變量,數(shù)據(jù)與數(shù)據(jù)類型,原始數(shù)據(jù)類型,運(yùn)算符,語(yǔ)句,條件語(yǔ)句,循環(huán)控制語(yǔ)句,函數(shù),事件與事件處理,數(shù)組,對(duì)象與類等等。

      先不要被這一大堆內(nèi)容嚇倒,聰明的你應(yīng)該很容易理解它們,學(xué)習(xí)的目的在于運(yùn)用。因此,對(duì)你來(lái)說(shuō)最重要的是按照書(shū)中的例子重新做一遍,以加深理解,最好能夠修改那些例子,并對(duì)出現(xiàn)的錯(cuò)誤加以分析。這樣,你將會(huì)發(fā)現(xiàn)自己的進(jìn)步速度之快甚至超過(guò)了自己的想象,盡管你現(xiàn)在還不能做出什么像摸象樣的東西,但是,這將為你今后的成就奠定堅(jiān)實(shí)的基礎(chǔ)。有的朋友總是不重視這樣的基礎(chǔ)訓(xùn)練,認(rèn)為創(chuàng)意、思想最為重要,誠(chéng)然,我不否認(rèn)創(chuàng)意在我們工作中的重要性,但好的創(chuàng)意,也是需要基礎(chǔ)來(lái)實(shí)現(xiàn)的,否則,你充其量只能做個(gè)空想家罷了。

      【給初學(xué)ActionScript者的建議(一)】相關(guān)文章:

      1.給所有Actionscript初學(xué)者的建議(三)

      2.給ActionScript3.0初學(xué)者的建議(二)

      3.ActionScript3.0視頻教程第一節(jié)關(guān)于ActionScript的介紹

      4.ActionScript3.0自學(xué)教程

      5.Flash ActionScript3.0簡(jiǎn)介

      6.發(fā)生actionscript錯(cuò)誤怎么解決

      7.提示actionscript錯(cuò)誤的解決辦法

      8.ActionScript教程07:條件語(yǔ)句的介紹