| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
Flash游戏开发中的组件应用

作者:未知    文章来源:网络    点击数:    更新时间:2007-4-26
 

  如果是认为程序代码写到这里就大功告成了,那就错了,由于上面的代码是捆绑在action的一个关键桢上,代码不能进行循环(组件首先也属于电影剪辑,也有不依赖于主时间轴播放的独立时间轴,但是在电影剪辑时间轴上只有一桢,不能构成循环),所以不能随时的检测按键的动作,下面代码是来实现电影剪辑实体myobject调用电影剪辑对象的自定义函数carcontrol本将组件的参数变量值传递给carcontrol函数,而且是主时间轴(组件上一级)执行事件模型onEnterFrame,这样能够保证及时不间断的调用函数。

this._visible = 0;
_parent.onEnterFrame = function() {
_parent[_targetInstanceName].carcontrol(leftTurn, rightTurn, forwardSpeed
, backwardSpeed, BorderminX, BordermaxX, BorderminY, BordermaxY, Speedfactor
, NewMinX, NewMaxX, NewMinY, NewMaxY);
};

  上面代码中this._visible = 0是组件不可见,组建只是来实现功能,本不在外表上体现。

  由于carcontrol是定义在电影剪辑对象原形上的一个函数,所以任何电影剪辑实体都可以调用这个函数。上面代码段中_parent[_targetInstanceName].carcontrol( ) 就是指组件(首先是电影剪辑)父场景中的电影剪辑(实体变量名为_targetInstanceName)调用函数。

  这样组件的定义就完成。

  d.安装组件。组件完成后就可以安装组件。重新打开flashMX,这个组件就自动的存在组件面板中,如下图:

  e.整合和应用组建。新建一文件(Ctrl+N)尺寸为800X600,背景色为值为灰色#999999,用图形工具画一小车形状的图形,全部选中该图形,按 F8,把小车转化为电影剪辑Porsche,回到主场景中,选中小车,在属性面板中给小车电影剪辑实体命名为myobjiect。打开组件面板(Ctrl+F7),从组件面板中拖出组建fsmxsteuern,拖出该组件的过程也是实体化组件的过程(注意组件首先应该是个电影剪辑,和电影剪辑一样拖出的过程也是实体化的过程),

  选中主场景中的组件,在属性面板中自动出现组件的参数,我们可以改变参数值,如下图:

  现在来对参数进行设置,将targetClip中的值改为小车电影剪辑实体名myobject,如果 你愿意,也可以改变其他的参数。改变参数以后,如下图所示:

  f.保存文件,预览生成文件。这样一个简单的“赛”车游戏就完成,亲手操作一下,是不是有种身临其境的感觉。

4.技术提高

1. 在定义组件的过程中,一般要用到函数#initclip #endinitclip和方法
Object.registerClass(),#initclip #endinitclip本身不进行任何的运算,它们总是成对出现,在自定义组时包含代码块,#endinitclip代码块在.swf文件反复的播放中只执行一次,代码块在.swf文件中的任何元素载入时间轴前就已经运行了,这与flash5中在播放头运行时代码执行有所不同。

2.组件中主场景中的任何图形元素不影响组件的外观和功能,即是在安装组后,我们在新的文件中看不到组建中主场景的图形元素等等。组件和电影剪辑一样可以重复多次的应用,组建也有一个实体话的过程,从组件面板中拖出组件的过程也是组件实体化的过程,不过和电影剪辑有所区别,组件带有参数,我们可以对组件实体的参数进行改变,以达到组建为我所用。

3.这是一个简单的游戏,实际很多游戏都比这个复杂,比如做一个两辆车赛车的游戏,玩家是两个人,一人控制一辆车,每个人按键不同,但都是对车进行前进/倒退等等动作,那么这样做呢,其实原理还是一样,我们可以做自定义一个组件,对另一辆车进行按键控制,两个组件操作相互独立,这样就有程序模块化设计的思想的雏形。可见flash的actiionscript给我们flash编程带来怎样的空间。

上一页  [1] [2] [3] 


  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章