2 用什么开发flash_crazydream2008的空间_百度空间

在电脑爱好者上的文章已经开始连载了。不过因为篇幅的限制,编辑大人对文章做了很多调整。打散了重新排序的。我写的两篇文字,结果被拆成了3篇。 我在我的主页上就不按照杂志上的顺序贴了。 这是原版的。(还是编辑改过的好看一些。建议大家到杂志上去看。2010年4月开始。),内容上大体上是差不多的。

杂志上提到的源文件,在下面的文章中可以找到下载的链接 。

关于作者:

我是一个做Flash游戏开发的从业人员。从Flash5开始接触flash到现在。
目前我主要在做的工作就是开发单机的Flash休闲游戏。

感谢电脑爱好者编辑的信任,让我在这里讲讲关于Flash的一些内容。
今后几期文章中所涉及的一些内容,仅仅是以我个人的角度,以及习惯。对我所认识的flash开发平台做的一番梳理,可能并不那么全面和客观。仅是希望可以帮你对flash这个平台有所了解,并能简单的做一些入门级的尝试。加入flash的开发者行列。
如果遗漏或者错误,还望原谅和指正。
我:张炜昱

个人主页:

MSN:

QQ: 545387308

(二)你需要掌握什么技能以及工具来开发Flash

上一期我们讲了很多Flash平台的精彩应用,是不是你也跃跃欲试的想加入其中呢。
那些应用,究竟是用什么来开发的呢?而你又需要具备什么能力才能做这些事情呢?
这回我们就来一一的介绍。

Flash不仅仅是一个设计工具,他包含 工具,框架,语言和服务器端的开发平台。

你可以把flash平台想象为java平台,或者微软的.net平台。虽然它现在还远没有Java和.net那么成熟。

不管你使用什么开发工具,Flash开发平台的核心就是ActionScript。
Action script 1和2我们就不在这里讨论了。那已经是过去时,不再是现在发展的方向。

语言:

Action Script3:
面向对象的编程语言。核心语言基于ECMAScript(ECMA262)标准,对OOP架构深层优化。

mxml: 
MXML是一个可以让你在Adobe Flex中布局用户界面组件的一种XML语言。你也可以使用MXML声明来定义程序中的非可视化组件,比如对服务器端数据源的访问以及用户界面组件和数据源之间的数据绑定。

MXML标签与ActionScript类或者类中的属性是相对应的。当你编译你的Flex应用程序的时候,Flex解析你的MXML标签并且生成相应的

ActionScript类。然后这些ActionScript类会被编译成SWF字节码存储到一个SWF文件中。

集成开发环境:
Flash CS4
是一个设计工具,我们一般用来做动画,广告,游戏等等。
FlashCS4也可以直接生成AIR的应用程序。

(据说FlashCS5将在2010年4月上市,可能你读到这期的时候CS5也已经可以下载了。)

如果你想做动画或者设计,那么你需要关注的就是 flash的时间轴


(图1),以及绘画工具


(图2)。

Flash cs4还支持类似于AE的3D转换


(图3)。 还新增的反向运动与骨骼工具


(图4)。

非常强大的动画制作工具。
关于Flash的功能介绍 官网地址: http://www.adobe.com/cn/products/flash/features/

但还有一点你应该知道的是,你的绘画水平和设计能力,并不会随着软件版本的提升而提升。

1. 如果你想做动画,就像灰太狼和喜洋洋那样的。

首先你要有一定的美术基础。比如你经常临摹一些动漫的作品,或者经常自己创作一些漫画。做动画没有什么捷径,就需要你一笔一笔的画出来。

其次要放弃鼠绘的念头,那样自己累不说,既耽误时间,也很难完成好作品。

所以你的必备工具就是一个手写板,建议是wacom的,不必太大,6x11英寸的就已经很舒服了,价格大概会在2400元左右。(囧 另外要注意,手写板绝不能太小,否则用着很不爽! 还要注意,如果你要买国产的品牌,要注意那个手写笔里是不是要安装电池的。使用电池的,会让你很郁闷的。用用就知道了。)

如果你有一定的画画基础,用手写笔画其实和你在纸上画几乎是一样的。起初可能会有些不习惯,熟悉一段时间就好了。

你想让你画的形象动起来,这也没有什么捷径。你看到的动画片一般都是每秒24帧,由那些伟大的动画师一笔笔的画出来的,这就是所谓的“逐帧”动画。不要妄想只需要画开头和结尾,软件程序就会帮你补出中间过渡的部分。

当然也有可以偷懒的做法,比如可以把你画的人物形象不同的身体部分保存为不同的影片剪辑,做补间动画。动起来就像……皮影戏的那种。你应该可以想象。

想做动画很容易,但是想把动画做好就难了。
你需要很多相关的知识,比如动画原理。
你还需要做大量的练习。估计从入门到中级的水平,至少需要1-2年的时间(还是在你有画画的基础的前提下。)

另外如果细分的话,在公司中,有些人专门画背景,有些人专门设计人物形象。有些人专门制作逐帧的动画。你可以根据自己的喜好选择发展的方向。

2. 制作网络广告和minisite - 动画

比较正规的广告公司在制作上会有比较细的分工。

在你开始制作前,广告或者minisite的创意已经有做创意的人与客户沟通并确认好了。
并且,有设计师已经完成了广告和minisite的设计(静态的,每一帧画面的设计,会在Photoshop中制作好),这就是所谓的Layout.

具体制作和完成网络广告和minisite,一般是动画师和程序来配合来完成,这已经是所有工序的{zh1}一步了。完成后,经过沟通修改,以及{zh1}的QA测试,就可以上线了。

动画师不一定要有美术和绘画的基础。但你要熟悉基本的动画原理,以及了解如何让那些素材动的更好。你要做的就是把psd中的素材保存出来,导入flash,然后以动画的形式来呈现那些创意。
在这个过程中你也可以寻找学习和提高的机会,提高自己的设计能力,争取以后也可以成为设计师。

3. 制作网络广告和minisite - 程序

网络广告中,一般情况下,涉及程序并不多。不会有那么多空间让你来发挥。

但在minisite中,为了吸引用户的目光来关注产品,很多时候会有很大的发挥空间,需要制作一些很COOL或者很前沿的效果,比如在Flash中实时的渲染3D模型。
这里就要考验你的综合素质了。
有兴趣的读者可以这样尝试一下,在这里:http://www.thefwa.com 找找你觉得比较炫的网站。比如…网站中有让你惊奇的效果。你可以用Sothink这个软件反编译这个网站,得到其中的素材。

然后你尝试在flash中,使用那些素材,重现一下那个效果。你就会知道这件事有多难。

当然,大部分时候,因为广告的排期比较紧,广告公司不会自己给自己制造麻烦。所以……一般不会让你去挑战高难度的程序的。如果因为一些原因导致网站不能按时上线,那你的罪过可就大了。

4 制作小游戏

对于设计师和动画师来说,和做动画的要求是差不多的。你只需要按照要求完成相应的动画素材即可。

对于编程人员来说,和制作minisite差不多,也是对你编程能力的综合考验。

不同的游戏涉及到的能力需求也不太相同。
比如:

你想做马里奥游戏,你需要了解区块游戏的原理。
你想做台球,需要了解一些物理公式和数学公式。例如质量守恒,摩擦,以及关于反弹的知识等等。

如果你想做比较写实的足球射门游戏,你还需要了解如何计算物体在3D环境中的运动。
你想做2D的类似于马里奥卡丁车的游戏,需要了解一个叫做mode7的引擎的原理。
你想做棋牌类的游戏,电脑的AI就是需要重点研究的对象。

为了简化游戏的开发,as3上也有一些类库和引擎。我们会在以后的文章中介绍。
根据不同的游戏,会对你有各种不同的要求。这件事急不得,你需要做的就是多看,多想,多记,多学。慢慢的积累。

不要以为会做连连看,贪嘴蛇,或者俄罗斯方块,就以为会做flash游戏了。类似于这样的游戏,都只是基础中的基础。源代码在网上搜搜到处都可以找到。多看看一些国外的收集flash的游戏网站,目前一些新的游戏,有很让人吃惊的表现。

Flash Catalyst
面向多媒体互联网交互设计,重点在于交互设计师对于应用布局,外观和{tx}设计制作

Flash builder
前身是Flex Builder,只是改了名字。
面向Flash开发人员,包括使用Flex SDK和框架,AS3和MXML语言的开发人员

上面两个,更多的应用于制作网站(从数据库中读取信息,显示给用户),或许在这里你可以把flash想象成asp.net 或者 Php,他们可以做类似的事情。

Flash builder也可以用于游戏开发,目前也有很多使用flash builder制作的在线游戏。

服务器端:
包括BlazeDS,LCDS,FMS等。

BlazeDS
是一个基于服务器的 Java 远程控制 (remoting) 和 Web 消息传递 (messaging) 技术,以LGPL(Lesser GNU Public License)公共许可证书发布。它能够使得后端的 Java 应用程序和运行在浏览器上的 Adobe Flex 应用程序相互通信。在Java应用服务器上,它以servlet的形式存在, 因此可以在任何标准Java网络应用中运用它。

LCDS(LiveCycle Data Service)
之前叫做FDS(Flex Data Service),他是基于java(也有ColdFusion版的)后端的数据服务工程,功能包括映射Java对象到Flex对象(包括调用Java类的方法)、RTMP(Real Time Message Protocol)、代理、服务端生成PDF等等功能。

Flash Media Server (简称FMS)

用于用户之间相互通讯的平台,集成了Flash多媒体交互的特性,又添加了实时音频和实时数据流等新特色.

使用该平台,你可以通过网络存储录制下来的音频、视频,也可以共享数据对象,并且可以将这些音频、视频和共享数据对象传递给多个客户端,实现实时同步共享。该平台集成了通讯功能和应用程序功能,它通过Flash Player(Flash player6或更高)在客户端提供音频共享,视频共享和数据流。

联机的解决方案中,FMS貌似是最简单和容易的,但估计也是最贵的。

关于联机,关于服务器,还有更多的解决办法,比如smartFoxServer, red5等等。
acrtion script3 是支持 socket的,如果你能力足够强大,也可以自己用java或者C、C++ 等来写后台的服务器。我以前尝试过使用古老的VB来写。
如果读者想了解更多,可以自行在百度或者谷歌搜索更多的内容来学习。

关于后台程序的开发,需要你具备什么样的能力呢?

涉及到后台程序时,可就没有好玩的绘画和动画了。代码很枯燥。

如果你想做相关的工作,{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平台开发者技能树”。
网址:http://swfever.com/wp-content/special/Flash_Platform_Developer_Skill_Tree.html
这张图会让你对Flash平台对于开发者的要求,有比较清晰的了解。

差不多囊括了在这个平台上工作所需要掌握的一切。当然谁也不是全才,术业有专攻嘛。

试试看:

你在书店也可以买到很多相应的教程,我们这里也是比较入门级的文章,

只做一些适合初学者和入门者能实现的操作。

如果不涉及到复杂的算法,专业的数学知识,人工ai等等,你想实现一个简单的flash游戏,基本只需要知道:

1 什么是MovieClip.

2 MovieClip都有什么属性

3 如何在场景中添加或者删除MovieClip

4 了解数组和object是什么,如何使用

5 了解如何控制文本(这个在上一期的杂志中,”hello the word”中我们已经做过了。)

1 什么是MovieClip.

不管你做什么,动画也好,游戏也好。
为了让人看到你的作品,你肯定要在场景中添加一些要显示的素材。
并且你需要控制这些素材。为了控制他们,那些素材就需要变转化成元件。

元件
是指在 Flash 创作环境中或使用 Button (AS 2.0)、SimpleButton (AS 3.0) 和 MovieClip 类创建过一次的图形、按钮或影片剪辑。 然后,您可在整个文档或其它文档中重复使用该元件。

元件可以包含从其它应用程序中导入的插图。您创建的任何元件都会自动成为当前文档的库的一部分。

元件的类型
每个元件都有一个{wy}的时间轴和舞台,以及几个图层。 可以将帧、关键帧和图层添加至元件时间轴,就像您可以将它们添加至主时间轴一样。 创建元件时需要选择元件类型。

元件包括: 图形元件,按钮元件,影片剪辑元件,以及字体元件。

图形元件是不能用程序控制的。你也不可以把它从库里实例化。

如果你想用程序控制他们,并在场景中实例化这些元件,就会用到 Sprite(精灵) , Movieclip (影片剪辑)和 button (按钮)

如果想使用他们,你需要导入对应的类:
import flash.display.Sprite;

import flash.display.SimpleButton;

import flash.display.MovieClip;

Sprite 包含了很多属性,比如宽,高,宽的缩放比例,高的缩放比例,x坐标,y坐标 等等很多。 在一个程序中,你可以按照你想要的方式,控制Sprite的显示,让它出现在哪儿,多大,等等。Sprite就是移除了时间轴的MovieClip.

Movieclip 继承自Sprite, Sprite的所有属性Movieclip都有。
Movieclip多了时间轴的功能。如果你想让一个对象有很多帧,并可以指定显示第几帧,就要用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,那么你通过 “点语法” 来控制它,并使用它的属性。
使用MovieClip的“公共方法” 以及 “继承的公共方法” 用法也是一样。

比如:
//公共属性
MC.x = 200 //控制MC的x坐标

MC.y = 100 //控制MC的y坐标

MC.rotation = 30 //控制MC的角度

MC.alpha = 0.5 //控制MC的透明度
等等

//公共方法

MC.gotoAndStop(10) //控制MC停止在第几帧。
MC.play() //控制MC开始播放

MC.stop() //控制MC停止
MC.startDtag() //开始拖拽MC

等等

3如何在场景中添加或者删除MovieClip

在场景中画一个圆,之后用鼠标选择这个圆(你会看到圆上有规则排列的原点),按“F8”,会弹出一个窗口“转换为元件”。

请按照


图5的设置(名称 Ball, 类 Ball, 基类:flash.display.MovieClip),完成后点击确定。

之后你会看着这样一个确定窗口


图6。不用理会他,点确定即可。

完成后,你就可以在库中看到这个Ball了。

完成后把Ball从时间轴上删掉。

如图8,


在时间轴上绘制两个按钮,用来添加和删除。

图9,在属性面板中,给两个按钮分别取名为 bt1 和 bt2


在场景中点空白处,属性面板变成图10的样子。在”类”的输入框中输入”DocumentClass”.


保存这个文件到硬盘,命名为 myFirstFlash.fla.

打开FlashDevelop,新建一个as文件,保存到myFirstFlash.fla 同一个目录里,命名为 DocumentClass.as

在DocumentClass中输入如下内容:

package {

import flash.display.Sprite;

import flash.display.SimpleButton;

import flash.display.MovieClip;

import flash.events.Event;

import flash.events.MouseEvent;

public class DocumentClass extends MovieClip {

private var ballShowed:Boolean;

private var ball:Ball;

function DocumentClass() {

ballShowed = false;

bt1.addEventListener(MouseEvent.CLICK,_click)

bt2.addEventListener(MouseEvent.CLICK,_click)

}

private function _click(e:Event):void

{

switch(e.target) {

case bt1:

if (!ballShowed) {

ballShowed = true;

ball = new Ball();

ball.x = 200;

ball.y = 100;

addChild(ball);

}

break;

case bt2:

if (ballShowed) {

ballShowed = false;

removeChild(ball);

}

break;

default:

break;

}

}

}

}

完成后,在Flash中Ctrl+Enter 测试,即可看到运行效果了。你已经成功完成添加和删除MC的任务。还做完成了如何使用和监听按钮的鼠标事件。

下载:

关于数组和object是什么,如何使用。是Flash编程的基础知识。相关的内容也可以在Flash的帮助文档中找到。

关于文本的控制,我们已经在上期的 “hello word”中完成过。你可以在上期的杂志中找到。

相关资源:
Flash的在线帮助文档,内容很全面。如果你想更好的使用Flash,请认真的全部阅读。

http://help.adobe.com/zh_CN/Flash/10.0_UsingFlash/

下期预告:

Flash平台包含的内容可是不少的。你或许会觉得有些无从下手,不知道如何开始学习使用这个平台。
下一期我们就会着重的讨论下关于Flash的学习,入门,提高的方法。



郑重声明:资讯 【2 用什么开发flash_crazydream2008的空间_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——