在电脑爱好者上的文章已经开始连载了。不过因为篇幅的限制,编辑大人对文章做了很多调整。打散了重新排序的。我写的两篇文字,结果被拆成了3篇。 我在我的主页上就不按照杂志上的顺序贴了。 这是原版的。(还是编辑改过的好看一些。建议大家到杂志上去看。2010年4月开始。),内容上大体上是差不多的。 关于作者: 我是一个做Flash游戏开发的从业人员。从Flash5开始接触flash到现在。 感谢电脑爱好者编辑的信任,让我在这里讲讲关于Flash的一些内容。 QQ: 545387308
(二)你需要掌握什么技能以及工具来开发Flash 上一期我们讲了很多Flash平台的精彩应用,是不是你也跃跃欲试的想加入其中呢。
Flash不仅仅是一个设计工具,他包含 工具,框架,语言和服务器端的开发平台。 你可以把flash平台想象为java平台,或者微软的.net平台。虽然它现在还远没有Java和.net那么成熟。 不管你使用什么开发工具,Flash开发平台的核心就是ActionScript。 语言: Action Script3: mxml: MXML标签与ActionScript类或者类中的属性是相对应的。当你编译你的Flex应用程序的时候,Flex解析你的MXML标签并且生成相应的 ActionScript类。然后这些ActionScript类会被编译成SWF字节码存储到一个SWF文件中。
集成开发环境: (据说FlashCS5将在2010年4月上市,可能你读到这期的时候CS5也已经可以下载了。) 如果你想做动画或者设计,那么你需要关注的就是 flash的时间轴 Flash cs4还支持类似于AE的3D转换 非常强大的动画制作工具。
但还有一点你应该知道的是,你的绘画水平和设计能力,并不会随着软件版本的提升而提升。
1. 如果你想做动画,就像灰太狼和喜洋洋那样的。 首先你要有一定的美术基础。比如你经常临摹一些动漫的作品,或者经常自己创作一些漫画。做动画没有什么捷径,就需要你一笔一笔的画出来。 其次要放弃鼠绘的念头,那样自己累不说,既耽误时间,也很难完成好作品。 所以你的必备工具就是一个手写板,建议是wacom的,不必太大,6x11英寸的就已经很舒服了,价格大概会在2400元左右。(囧 另外要注意,手写板绝不能太小,否则用着很不爽! 还要注意,如果你要买国产的品牌,要注意那个手写笔里是不是要安装电池的。使用电池的,会让你很郁闷的。用用就知道了。) 如果你有一定的画画基础,用手写笔画其实和你在纸上画几乎是一样的。起初可能会有些不习惯,熟悉一段时间就好了。 你想让你画的形象动起来,这也没有什么捷径。你看到的动画片一般都是每秒24帧,由那些伟大的动画师一笔笔的画出来的,这就是所谓的“逐帧”动画。不要妄想只需要画开头和结尾,软件程序就会帮你补出中间过渡的部分。 当然也有可以偷懒的做法,比如可以把你画的人物形象不同的身体部分保存为不同的影片剪辑,做补间动画。动起来就像……皮影戏的那种。你应该可以想象。 想做动画很容易,但是想把动画做好就难了。 另外如果细分的话,在公司中,有些人专门画背景,有些人专门设计人物形象。有些人专门制作逐帧的动画。你可以根据自己的喜好选择发展的方向。
2. 制作网络广告和minisite - 动画 比较正规的广告公司在制作上会有比较细的分工。 在你开始制作前,广告或者minisite的创意已经有做创意的人与客户沟通并确认好了。 具体制作和完成网络广告和minisite,一般是动画师和程序来配合来完成,这已经是所有工序的{zh1}一步了。完成后,经过沟通修改,以及{zh1}的QA测试,就可以上线了。 动画师不一定要有美术和绘画的基础。但你要熟悉基本的动画原理,以及了解如何让那些素材动的更好。你要做的就是把psd中的素材保存出来,导入flash,然后以动画的形式来呈现那些创意。
3. 制作网络广告和minisite - 程序 网络广告中,一般情况下,涉及程序并不多。不会有那么多空间让你来发挥。 但在minisite中,为了吸引用户的目光来关注产品,很多时候会有很大的发挥空间,需要制作一些很COOL或者很前沿的效果,比如在Flash中实时的渲染3D模型。 然后你尝试在flash中,使用那些素材,重现一下那个效果。你就会知道这件事有多难。 当然,大部分时候,因为广告的排期比较紧,广告公司不会自己给自己制造麻烦。所以……一般不会让你去挑战高难度的程序的。如果因为一些原因导致网站不能按时上线,那你的罪过可就大了。
4 制作小游戏 对于设计师和动画师来说,和做动画的要求是差不多的。你只需要按照要求完成相应的动画素材即可。 对于编程人员来说,和制作minisite差不多,也是对你编程能力的综合考验。 不同的游戏涉及到的能力需求也不太相同。 你想做马里奥游戏,你需要了解区块游戏的原理。 如果你想做比较写实的足球射门游戏,你还需要了解如何计算物体在3D环境中的运动。 为了简化游戏的开发,as3上也有一些类库和引擎。我们会在以后的文章中介绍。 不要以为会做连连看,贪嘴蛇,或者俄罗斯方块,就以为会做flash游戏了。类似于这样的游戏,都只是基础中的基础。源代码在网上搜搜到处都可以找到。多看看一些国外的收集flash的游戏网站,目前一些新的游戏,有很让人吃惊的表现。
Flash Catalyst Flash builder 上面两个,更多的应用于制作网站(从数据库中读取信息,显示给用户),或许在这里你可以把flash想象成asp.net 或者 Php,他们可以做类似的事情。 Flash builder也可以用于游戏开发,目前也有很多使用flash builder制作的在线游戏。
服务器端: BlazeDS LCDS(LiveCycle Data Service) Flash Media Server (简称FMS) 用于用户之间相互通讯的平台,集成了Flash多媒体交互的特性,又添加了实时音频和实时数据流等新特色. 使用该平台,你可以通过网络存储录制下来的音频、视频,也可以共享数据对象,并且可以将这些音频、视频和共享数据对象传递给多个客户端,实现实时同步共享。该平台集成了通讯功能和应用程序功能,它通过Flash Player(Flash player6或更高)在客户端提供音频共享,视频共享和数据流。 联机的解决方案中,FMS貌似是最简单和容易的,但估计也是最贵的。 关于联机,关于服务器,还有更多的解决办法,比如smartFoxServer, red5等等。
关于后台程序的开发,需要你具备什么样的能力呢? 涉及到后台程序时,可就没有好玩的绘画和动画了。代码很枯燥。 如果你想做相关的工作,{zh0}是有.net或者java, 或者C# 等的编程经验。
Flash服务器端的程序是与那些平台类似,做的事情也是类似的。 相对来说,我觉得写java或C#的人,转向as3更容易。尤其是java, 大体上看起来和as3几乎是一样的,当然差别也是巨大的。 因为FMS, SFS和red5的存在,使得用flash开发多人联机游戏的门槛降低了很多。 我周围有很多个人开发者,都曾经声称或者正在开发联机的游戏。
最近另我比较惊讶的是,竟然有人用Flash编写了一个FC模拟器。可能你见过C写的,java写的,vb写的FC模拟器。但这回…竟然有人做了一个基于Flash的,很令人惊讶。 项目地址 可以下载到源文件:http://code.google.com/p/aminnes/ 运行效果:http://www.aminnes.com/
AS3中提供了一个bytearray的类。 貌似理论上讲,通过这个类你可以载入和分析任何格式的文件。 并在flash中解释并显示出来。 因为这个类的存在现在as3似乎变得异常的强大了。
AIR AIR的推出打破了在线程序与桌面程序的界限。使用flash制作AIR程序,你几乎可以完成类似于C#和java开发的桌面程序。但相对来说…AIR也有一些限制和局限性。没有c# java那么自由,不过者仍然是一个很好的开始。 在这里,adobe官方收集了一些AIR的应用: http://www.adobe.com/cfusion/marketplace/index.cfm?event=marketplace.home&marketplaceid=1
关于Flash平台对于开发者的要求,网上已经有人整理了“Flash平台开发者技能树”。 差不多囊括了在这个平台上工作所需要掌握的一切。当然谁也不是全才,术业有专攻嘛。
试试看: 你在书店也可以买到很多相应的教程,我们这里也是比较入门级的文章, 只做一些适合初学者和入门者能实现的操作。
如果不涉及到复杂的算法,专业的数学知识,人工ai等等,你想实现一个简单的flash游戏,基本只需要知道: 1 什么是MovieClip. 2 MovieClip都有什么属性 3 如何在场景中添加或者删除MovieClip 4 了解数组和object是什么,如何使用 5 了解如何控制文本(这个在上一期的杂志中,”hello the word”中我们已经做过了。) 1 什么是MovieClip. 不管你做什么,动画也好,游戏也好。
元件
元件可以包含从其它应用程序中导入的插图。您创建的任何元件都会自动成为当前文档的库的一部分。
元件的类型
元件包括: 图形元件,按钮元件,影片剪辑元件,以及字体元件。
图形元件是不能用程序控制的。你也不可以把它从库里实例化。
如果你想用程序控制他们,并在场景中实例化这些元件,就会用到 Sprite(精灵) , Movieclip (影片剪辑)和 button (按钮) 如果想使用他们,你需要导入对应的类: import flash.display.SimpleButton; import flash.display.MovieClip;
Sprite 包含了很多属性,比如宽,高,宽的缩放比例,高的缩放比例,x坐标,y坐标 等等很多。 在一个程序中,你可以按照你想要的方式,控制Sprite的显示,让它出现在哪儿,多大,等等。Sprite就是移除了时间轴的MovieClip. Movieclip 继承自Sprite, Sprite的所有属性Movieclip都有。 Button 其实就是特殊的 Movieclip。 Button只有4帧,根据鼠标与按钮的不同状态,显示对应的不同的帧。除了这一点,其他的你都可以像 Sprite 或 Movieclip 一样来控制它。
2 MovieClip都有什么属性 关于flash的学习方法,我们会在下一期讨论,但今天也给你一些提示。 学习flash{zh0}的方式,其实就是好好的阅读它的帮助文档以及AS3的程序文档。 关于MovieClip都有什么属性,可以参看下面你的网站: http://help.adobe.com/zh_CN/AS3LCR/Flash_10.0/flash/display/MovieClip.html
其中包含 “公共属性” 以及 “隐藏继承的公共属性”。 假设你的影片剪辑叫做MC,那么你通过 “点语法” 来控制它,并使用它的属性。 比如: MC.y = 100 //控制MC的y坐标 MC.rotation = 30 //控制MC的角度 MC.alpha = 0.5 //控制MC的透明度 //公共方法 MC.gotoAndStop(10) //控制MC停止在第几帧。 MC.stop() //控制MC停止 等等
3如何在场景中添加或者删除MovieClip 在场景中画一个圆,之后用鼠标选择这个圆(你会看到圆上有规则排列的原点),按“F8”,会弹出一个窗口“转换为元件”。 请按照 之后你会看着这样一个确定窗口 完成后,你就可以在库中看到这个Ball了。 完成后把Ball从时间轴上删掉。 如图8, 图9,在属性面板中,给两个按钮分别取名为 bt1 和 bt2
在场景中点空白处,属性面板变成图10的样子。在”类”的输入框中输入”DocumentClass”.
保存这个文件到硬盘,命名为 myFirstFlash.fla.
打开FlashDevelop,新建一个as文件,保存到myFirstFlash.fla 同一个目录里,命名为 DocumentClass.as
在DocumentClass中输入如下内容: package {
}
完成后,在Flash中Ctrl+Enter 测试,即可看到运行效果了。你已经成功完成添加和删除MC的任务。还做完成了如何使用和监听按钮的鼠标事件。
下载:
关于数组和object是什么,如何使用。是Flash编程的基础知识。相关的内容也可以在Flash的帮助文档中找到。 关于文本的控制,我们已经在上期的 “hello word”中完成过。你可以在上期的杂志中找到。
相关资源: http://help.adobe.com/zh_CN/Flash/10.0_UsingFlash/
下期预告: Flash平台包含的内容可是不少的。你或许会觉得有些无从下手,不知道如何开始学习使用这个平台。 |