一、寫這個文章的起因:
經(jīng)常遇到很多人想學(xué)習(xí)Flash,但是不知道從何學(xué)起,有的朋友甚至對于學(xué)會了Flash,能做些什么也很疑惑。
本人結(jié)合若干年Flash學(xué)習(xí)研究經(jīng)驗,給想學(xué)習(xí)Flash的朋友一些建議,也歡迎大家訪問我的空間,http://hi.baidu.com/billypc給我留言。如轉(zhuǎn)載本文,希望多多宣傳本空間,謝謝。
一般來說,F(xiàn)lash的學(xué)習(xí)主要有兩個方向,一是專攻Flash動畫,一是專攻Flash編程,當(dāng)然也有動畫和編程都學(xué)習(xí)的很到位的人,那是牛人。不過這里我主要分析一下Flash的這兩種方向如何開始學(xué)習(xí),如何快速掌握。
二、FAQs
問:學(xué)習(xí)flash做動畫需不需要美術(shù)基礎(chǔ)啊?
答:
首先,要說明的是,F(xiàn)lash動畫也分為幾種。
最重要的應(yīng)用就是做動畫片,比如早期的ShowGood三國,小小,現(xiàn)在的小破孩系列,開心驛站系列,燕尾蝶等。這些都是動畫片制作,這一類的flash需要有很好的美術(shù)功底,需要有諸如手繪,視覺感,鏡頭感等相關(guān)的專業(yè)知識。這一類的動畫制作基本上需要美術(shù)和動畫的專業(yè)知識。而Flash只是作為一個動畫制作的工具而已,一個動畫片在從開始到結(jié)束,更多的需要的是美術(shù)及動畫方面的專業(yè)知識。
另一類應(yīng)用是Flash廣告和Flash特效,這一類Flash大量應(yīng)用于網(wǎng)絡(luò),從網(wǎng)站主頁Flash動畫,到網(wǎng)站內(nèi)部的一些廣告,一些吸引眼球的效果,都屬于這一類應(yīng)用。一般學(xué)習(xí)Flash的人,基本上都在做這樣的東西。包括一些初學(xué)者在內(nèi),都認(rèn)為這就是Flash,其實這只是Flash最簡單的應(yīng)用。制作這一類的Flash一般需要一些創(chuàng)意,有一定的視覺感,有美術(shù)基礎(chǔ)的人會更加得心應(yīng)手。有時候會需要掌握一些基礎(chǔ)的flash as,比如制作flash菜單,flash跳轉(zhuǎn)效果等。
Flash在動畫的制作過程中,主要扮演的是工具的角色,是目前動畫制作中效率比較高的工具之一,而一個好的動畫,并不依賴于你用什么工具,而依賴于你的專業(yè)程度。專業(yè)知識越扎實,創(chuàng)意越新穎,做出的動畫就越好。而工具的學(xué)習(xí)僅僅是第一步。
問:我也不知道應(yīng)該學(xué)習(xí)哪個方向,動畫和編程哪個好學(xué)???
答:
學(xué)做動畫,和學(xué)做編程,這樣兩個方向,其實不僅僅是做什么的不同,也是思維方式的不同。
一般來說,做動畫受視覺因素影響,而編程主要受邏輯思維影響。從很寬泛的角度上來說,學(xué)動畫,就是學(xué)感覺,學(xué)新思維。而學(xué)編程,就是學(xué)邏輯,學(xué)思維方式。美學(xué)不僅僅是能感覺到,還是一種創(chuàng)意思維,是感性的。而程序邏輯則完全是一種逆向思維,是理性的。
一般情況下,邏輯思維可以通過培訓(xùn)等,在短時間內(nèi)鍛煉出來,所以編程應(yīng)該來說是人人都能學(xué)會的,而且是可以通過死記硬背在短時間內(nèi)速成的。
而感性思維,或者說創(chuàng)造性思維,是很難一下子就養(yǎng)成的,就像我們學(xué)畫畫,沒有個一年半載,根本畫不出什么好的東西,而且很多畫畫好的都是從小開始培養(yǎng)的。所以學(xué)動畫短時間內(nèi)很難有一些突破,僅僅只能停留在一個較低的層面上,這也就是為什么很多人只會做flash廣告,而做不了大于3分鐘的動畫,或者說做不出高質(zhì)量的動畫的原因了。
但是從入門的角度上來看,會用flash的人,一般都能從事簡單flash動畫的制作,其實這主要是依靠了FLASH這款工具的強(qiáng)大,并非代表著做動畫很簡單,或者你很聰明,一下子就學(xué)會了,入門也許很簡單,但是越想提高一個層次就越困難,比如學(xué)會FLASH沒多久,就會做flash主頁,flash廣告等,那是因為這個沒有什么難度,所以綜合看來,我認(rèn)為,如果想在短時間內(nèi),從事flash工作的話,可以先掌握flash的應(yīng)用,能制作簡單flash動畫,然后學(xué)習(xí)編程,短期內(nèi)會很有效果。從長期來看,學(xué)習(xí)一些美術(shù)基礎(chǔ),對做動畫會大有幫助。
問:我最近想去學(xué)flash制作,在網(wǎng)上找了找,發(fā)現(xiàn)有很多制作軟件,如flash MX,flash MX2004和flash cs3 Pro,哪款比較好?。?br>答:
2000年 flash 5.0
2002年 flash mx (就是flash 6.0)
2004年 flash mx2004 (就是flash 7.0)
2005年 flash 8.0
2006年 flash cs3 (就是flash 9.0)
2008年 flash cs4 (就是flash 10.0)
目前的最新版本是flash cs4 功能非常強(qiáng)大,不僅支持骨骼動畫,還支持3維等等,verycd上有視頻教程,可以去學(xué)習(xí)一下。
不過初學(xué)的話,個人建議你從flash cs3開始,以便今后玩flash cs4,因為他們的操作性很相似,F(xiàn)lash 8現(xiàn)在雖然還是很多人在用,但是已經(jīng)漸漸被新軟件的新功能所取代。
FLASH CS3的好用之處::
1.cs3是ADOBE收購micromedia后的大作,無論從動畫設(shè)計上,還是程序語言上都有質(zhì)的飛躍。比如鋼筆功能更加強(qiáng)大,超級強(qiáng)大的繪圖功能,這些都讓矢量圖制作者提高了效率,使用更方便。
2.FLASH CS3引入了面向?qū)ο蟮腁S3語言,使得AS不在是一個簡簡單單的腳本語言,而搖身變成一種強(qiáng)大的高級程序語言。另外,F(xiàn)LASH CS3也全面支持AS之前的版本,從AS1到AS2均支持。
3.作為初學(xué)者,因為沒有基礎(chǔ),不存在用慣一個版本的軟件,用新版本時要重新熟悉的問題,所以應(yīng)盡量選擇最新版本的軟件進(jìn)行學(xué)習(xí),因為時代是在進(jìn)步的,老版本的軟件,學(xué)完了也就淘汰了,再學(xué)新的,還得重新熟悉界面及操作習(xí)慣。
4.目前由于flash cs4 10月份剛剛推出,目前CS4的教材并不多也不系統(tǒng),所以建議以FLASH CS3作為學(xué)習(xí)的開始,而且FLASH CS4的界面和CS3差不多,只是加了些新功能。
問:怎樣學(xué)會flash編程,要有什么基礎(chǔ),要學(xué)c語言嗎,哪里有教程???該怎么學(xué)啊??
答:
如果你只是了解一下,網(wǎng)上的視頻教程很多,可以去看一看。
但是如果你是很想學(xué)會,那么我建議你,要學(xué)習(xí)一門知識,就必須看系統(tǒng)的教材。因此不推薦看視頻教程,網(wǎng)上的視頻教程雖然很多,但是都很難系統(tǒng)性的教會你代碼的結(jié)構(gòu)、編程的思想。所以我的建議是買書學(xué)習(xí)。最好不要看電子書,個人覺得,看電子書的人,都喜歡跳著看,這樣看就失去了意義。這樣看下來,好像學(xué)會了,其實什么原理都沒搞懂。
要真正的買一本書,一頁一頁的翻著看,看一遍不夠,一本書至少3遍甚至n遍。還要多加練習(xí)。學(xué)習(xí)編程,首先從hello world開始,然后就是要每天寫,經(jīng)常寫,這樣才有進(jìn)步。
很多人也有這樣的擔(dān)心,怕自己沒有語言基礎(chǔ),例如沒有學(xué)習(xí)過C等。其實大可不必?fù)?dān)心,語言只是一種工具而已,目前的主流語言就好象同素異形體一樣,看似有區(qū)別,其實都差不多。這就好像你會使用WIN98,升級到了WIN XP,你也不會說,連怎么打開文件都要重頭學(xué)習(xí)一樣。學(xué)習(xí)編程的關(guān)鍵是學(xué)習(xí)編程的思想,所以好的書教你怎么理解編程思想,差的書只是叫你怎么寫代碼,其中區(qū)別很大。
AS2的書,這里不做推薦了,我也沒看過什么好點的書,我學(xué)AS2完全就是看幫助學(xué)會的,主要是有JS基礎(chǔ)。
這里推薦一本AS3的書:《action script3.0殿堂之路》
問:我是老程序員了,對Javascript和Java都比較擅長,現(xiàn)在想學(xué)Flex,但不知道有什么經(jīng)典一點的書籍?
答:
1.初學(xué)者,推薦《action script3.0殿堂之路》,也有人推薦《as3權(quán)威寶典》個人覺得那書寫的不行。
2.flex的話,推薦《flex第一步》
3.as3語言掌握的7788了以后,可以去看以下一些書籍
4.實用書籍:
Action Script3.0 Cook Book —— 類似幫助手冊的書籍
Action Script3.0 設(shè)計模式 —— 一本講述程序設(shè)計思想的書籍,強(qiáng)烈推薦
問:flash as2.0 與 as3.0的本質(zhì)區(qū)別?
答:
首先說下as2,as2實際上是as1的升級版,引入一面向?qū)ο蟮母拍?,但并不是完全面向?qū)ο蟮恼Z言,只是在編譯過程中支持OOP語法。as2的面向?qū)ο箅m然不全面,但是卻是首次將OOP帶到了FLASH,而AS3是一個完全基于OOP的標(biāo)準(zhǔn)化面向?qū)ο笳Z言,最重要的就是as3不是as2的簡單升級,而完全是兩種思想的語言。可以說,as3全面采用了面向?qū)ο蟮乃枷?,而as2則仍然停留在面向過程階段,舉個例子,就像VB和C#的對比。
所以as3絕不是as2的升級版,在as3里,可以看到j(luò)ava和c#的影子,確實,這三種語言大部分思想都是一致的,只有一些小的區(qū)別,比如as3引入了命名空間的概念,但是不支持比如委托,在包封裝及外部訪問上也引入了一些新概念。
在編譯階段,as2采用的是AVM1(actionScript vitual machine),而as3采用的是AVM2。新一代虛擬機(jī)采用了OOP思想,在執(zhí)行速度上比起avm1也快了10倍。還提供了異常處理。以前我們在使用AS2時,一旦出錯,AVM1選擇的是靜默失敗,讓人根本不知道什么地方出錯了,會浪費(fèi)大量的時間去查錯,而AVM2與目前主流的編譯器一樣,會有異常處理,運(yùn)行出錯會輸出錯誤提示,工作效率大大提高。如果做個對比,我想說,AVM1就是大刀長矛,而AVM2就是手槍,大刀和長矛也能殺敵,但是只在面對弱智的敵人才能發(fā)揮作用,面對一個大型項目,不用點現(xiàn)代化工具是不行滴。
as2與as3的部分區(qū)別,只說一些大的區(qū)別,小的不同太多,就不談了:
1.運(yùn)行時異常機(jī)制處理,這個剛才說過了。
2.事件機(jī)制,這也是很多人拿起as3就不知所措的原因,初學(xué)者會發(fā)現(xiàn)連一個按鈕點擊的方法都寫不出來。實際上as3的事件機(jī)制采用的是監(jiān)聽的方式,和as2時代的onClipEvent不同,as3里所有的事件都是需要觸發(fā)器,監(jiān)聽器,執(zhí)行器三種結(jié)構(gòu)的,這樣做的好處就是使得這個語言非常的堅強(qiáng),非常的標(biāo)準(zhǔn)化。不像as2,奇形怪狀的代碼漫天飛,可以這樣寫,也可以那樣寫,代碼變得繁復(fù)難懂,可讀性太差,執(zhí)行效率也大大降低。要特別說明的是,as3的所有事件都直接繼承event對象,而event是直接繼承自大老板Object類,結(jié)構(gòu)多么完美。所以在as3中,所有的事件都繼承自相同的父親,結(jié)構(gòu)相同,提高了重用性。
3.封裝性,這是as3與as2最大的不同,as3引入了封裝的概念,使得程序安全性大大提高,各個對象之間的關(guān)系也通過封裝,訪問控制而得以確定,避免了不可靠的訪問給程序帶來的意外產(chǎn)生。
4.XML,我覺得這是最令人激動人心的改變,現(xiàn)在as3程序員可以很輕松也很自豪的說,我們是使用XML人群中最快樂的人。AS2時代對XML的存取仍然需要解析,而AS3則創(chuàng)新的將XML也視作一個對象,存取XML就像存取普通對象的屬性一樣方便,用點語法就可以,無疑大大提高了效率。
5.最關(guān)鍵的一點,容器的概念,AS3采用了容器的思想,告別了as2一個MovieClip打天下的局面。對于as2程序員來說,可能不能理解,我mc用的好好的,干嘛不讓我用啊。但是當(dāng)你真正的了解as3的思想的時候,當(dāng)你真主的體會到OOP的好處的時候,你會覺得as3的容器的思想的完全正確的。as2時代,我們做什么都用mc,而as2時代的mc也是直接繼承自object,這給了mc極大的權(quán)限,極其多的方法屬性,而有時我們只需要放一個背景圖,并不需要它動,這樣做就造成了極大的浪費(fèi)。說實在話as2和as3比起來就是浪費(fèi)之神,所以as2編出的swf絕對比as3編譯出來的swf要大上幾倍。as3把所有你用到的顯示對象都分開,mc的屬性方法都被瓜分開來,舉個例子,你去水果超市買水果,就肯定比直接去大型超市買要方便,更節(jié)約時間,時間就是金錢,那就是很大的節(jié)省。
當(dāng)然還有許許多多的不同,比如程序執(zhí)行機(jī)制,設(shè)計模式,結(jié)構(gòu)框架等等,這里就不在一一贅述。
問:怎么才能成為編程高手?
答:
可以說,學(xué)會編程并不難,怎么才能寫出好的程序,這是很多人所困惑的事情,我有時候也是左思右想,覺得自己寫出來的東西太在是太垃圾了。那么真正的高手他們在做些什么呢?他們到底因為什么才能成為高手呢?
其實,我們很多人都僅僅停留在會寫程序的階段,并沒有去研究,一個程序怎么寫才算是合理的,什么樣的結(jié)構(gòu),才是最完善的,什么樣的布局才是可擴(kuò)展的。什么樣的代碼才是最高效的。而這正是高手花功夫去研究的事情,也是為什么高手能做的更好的原因。
我總結(jié)了一下,覺得以下才是一個程序員應(yīng)該思考的路:
1.第一類人:會寫程序,這沒什么,人人都能辦到。(70%的程序員都在這里)
2.第二類人:有一定的結(jié)構(gòu)思想,能做設(shè)計結(jié)構(gòu)上的調(diào)整。能走到這一步,應(yīng)該可以算真正入門了。(15%的程序員在這里,很不幸,本人也在這里。)
3.第三類人:熟練應(yīng)用各種設(shè)計模式,到了這里,才算涉足高級編程領(lǐng)域。這樣的人才能算高手。(10%左右,我想黑羽同志應(yīng)該屬于這個級別)
4.第四類人:有算法分析和創(chuàng)意思維,能做到這一步的人,寫出來的程序就不叫程序了,叫偉大發(fā)明!(5%左右,微軟和谷歌的專家們在這里)
5.第五類人:這一類人是我不敢想象的,已經(jīng)超出我的思考范疇了。(趨向0%)
最后,歡迎大家百度HI我,和我探討相關(guān)的技術(shù)。
或者加入百度HI群:flash知道(1群)1051316、 flash知道(2群)1084144