有很多朋友问过我应该如何学习Flash编程,这个问题是个很难回答的问题,我认为一个人首先要弄清楚不是如何学习Flash编程,而是自己适合做什么,有的人总是在编程与美工之间来回排徊,一会儿学学编程,一会又学学美工,结果好象什么都会一点,但什么都不精通,充其量只是中级水平,因为这两个方向是截然不同,美工讲究的是感性思维,要求制做者有发散的思维,对世界有极深的洞察力,有着天马行空的想象,而学习编程就得有严密的逻辑思维能力,程序代码必需条理清哳、一个人基本上不可能同时在这两种思维方式上达到很高的造诣,所以我建议你在准备学习编程之前首先想想自己平时的思维方式是怎么样的,所谓"知已知披,百战百胜",这里的知已是放在第一位的,可见了解自己是多么重要。
讲到学习编程,其实没有什么明显的密诀,最好的办法就是"不停的练习与实践",如果你有Javascript的基础,学习Flash5编程将会比较容易上手,当然如果有C++的基础的话,Flash5编程只是小菜一碟了。一个好的程序员一般是学习使用过几种以上的语言,到一定的时候语言只是一种工具了,大不了就只是在不同的语言里用不同英文单词来完成相同的功能而已。此时,你要需要做的工作就是看别人写的程序,读别人的源代码是学习与提高的极好途径。在国外有专门Flash源代码下载站点,它的地址是:http://www.flashkit.com和http://www.were-here.com这里集合了世界上大量的源代码,你只需下载下来仔细分析与研究,必然会有所收获。有的人在学习的过程中一遇到问题,自己就不加什么思考的到处找人问,然后别人告知了答案甚至帮助修改了源代码之后也不认真看看,就放到自己的作品中,这样做根本得不到提高,下次遇到相似的问题时,又不知道如何解决了。所以我希望想学习、提高的人多多自己独立思考,独立解决问题,这个过程虽然非常痛苦与漫长,但是问题一但解决了之后,你会有种非常强烈的满足感,会增加自己的信心,会增强你对Flash的兴趣,会推动你向更高水平迈进。当然,如果实在是自己弄不出来,不耻下问也是明智之举,因此此时的你可能已经钻到某个死胡同里出不来了。关键是在得到答案之后要分析自己为什么弄不出来,错在什么地方,日后要注意些什么,这样问了才不会白问,才可以提高。
有的人喜欢看论坛的帖子,喜欢通过网络来学习Flash,其实书才是真正的十全大补,它是最全面,是比较适合初学者的,如果你接触Flash时间还不长的话,我建议你还是先买讲Flash5的书来看,让你对Flash有一个全面的认识之后再看网络中的文章与论坛中讨论的帖子,这样才可以提高与深入。网络上经常有一批人在重复地问一些非常初级的问题,其实这些问题如果找本书看一下就知道了,或者通过论坛的查找功能查找以前的帖子大都可以找到答案,论坛的版主虽然有为别人回答问题的义务,但是反复地回答同一个简单而初级的问题,再好耐性的版主也会厌烦的,我做过一段时间的版本,其中的苦与乐我是深知的。
前面我讲了一般学习Flash编程要注意的问题,下面我讲一讲Flash编程的新发展与理念--粒子系统。在现实社会中有一类自然现象是无法准确地应用关键帧的方式来实现它的动画模拟的,比如下雨、闪电、燃烧的火焰、流水或者爆炸效果等,这些动画效果一般可以使用随机的函数确定其颜色、位置、及运动速度之后,粒子便可以自由地模拟出相似的动画效果。当然这里用软件生成出来的粒子效果达不到MAYA软件粒子系统的效果,因为Flash编程在速度上有着明显的不足,当粒子的数量达到三百个左右时其反应速度将会明显降低,甚至到影响正常播放速度的地步,所以一个好的使用粒子原理产生出来的效果将明显受制于最小粒子的设计与制做上。一般来说,能够不用编程方式产生的运动就尽量不用编程方式来产生,而应该尽量使用Flash本身的motion或者shape运动或来成。有关的粒子系统的原理请参考Maya软件的书籍,在这里由于篇幅关系我不便再做更深一步的讨论。Flash动画特技效果已经发展到一些虚无概念的表达上,这种虚无概念用常用的关键帧技术极难表现,而借助于粒子系统、分形技术甚至数学模型可以表达出设计师天马行空的想象力,达到意念与画面的完美体现,从而完成一些非常奇特的效果。这些特效的实现需要有设计师想象力及程序员的高超的编程技巧,它将是设计师与程序员完美结合的结晶! |