2008-12-20

flash编程漫谈


发现论坛上有不少人在学习as2.0,突然就很想说说自己在使用2.0过程中的一些感想。
虽然都已经进入3.0的时代了,也用过它做过两个游戏,但自己还是比较倾向于2.0的,因为它的自由性让我爱不释手。
在编程之前,我们应该树立这样一种观念——我们不是在追求什么经典的代码,而是在控制物体的运动,我们在创造物体运动的规律。(毕竟大部分人都在使用它做这样一种事)通过编写物体的运动规则,我们可以得到各种各样的效果。
我是在学习c语言之前学习as2.0的,也许就是因为这一点,让我充分体会到了它的自由性,同时也是我养成了非常不好的编程习惯。你可以在主时间轴上写代码,可以在元件上写代码,也可以在元件的时间轴上写代码,可以在任何一个非常容易遗忘的地方写代码(这种灵活的方式在as3.0中是不提倡的),这使得你可以根据具体的需要来控制代码的运行。当然,你要始终保持一个清醒的头脑,能够预测到所有可能的情况,比如你写在影片剪辑时间轴上的代码会在什么情况下被运行,产生什么样的效果。一般都提倡将代码写在主时间轴上(as3.0则写在脚本文件中),我则比较喜欢在各个剪辑中穿梭寻找我的代码,看到它们只在该发生作用的地方出现,享受这种操纵代码的快感。
尊重你创建的每一个实例。无论是拖放在舞台上的,还是动态create、duplicate的,尊重它们的存在,相信它们能够自己管理好自己的运动,不要在它们的使命还没完成之前轻易的remove它们。在as2.0中movieClip的作用是非常强大的,每一个movieClip就相当于一个大型的代码仓库、大型的数据存储仓库(容器),你大可放心的将它们自己的东西保存在它们自己那。同时也要保持个清醒的头脑,能够预测所有可能的情况,创建的越多越是这样,在你的代码控制下会在什么情况下创建它们,会以什么方式运动,又会在什么情况下删除,伴随它们的删除你又会失去什么(请具体到每一个)。
注意影片的路径关系,不要只关心你的算法。编程时,脑中应该是一个立体的图像,所有那些你要创建的影片,以及影片之间的父子级关系。flash剪辑的图形化界面为构建这样的立体图像提供了很大的方便。弄清影片的层次关系相当重要,因为你可能需要从任何一个角落控制其他任何一个角落的影片运动。当你开始跟parent.parent打交道时就会知道这有多痛苦了,同样还是保持一个清醒的头脑。
我们应当享受as带来的这种感觉,它不同于c语言解算法都是抽象的计算,也不同于用c#编网页跟一堆数据纠结。在as中,只要你有一个想法,它都能很方便的帮你实现,你要做的只是设计一个自己的运动法则并尽可能的完善它。

No comments: