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