| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash游戏制作 > 文章正文 用户登录
为你新浪博客添加
DataGrid组件创建
FCL组件库
Flash V2组件开发
V2组件事件模型pa
关于RPG类型游戏制
微型教程一篇(ALE
组件之我见
在List组件中使用
[手机游戏]:关于t

游戏组件的创建、打包和运用全过程           

游戏组件的创建、打包和运用全过程

作者:佚名 来源:不详 更新:2007-1-13 20:43:28 错误报告 我要投稿

声明:勿做商业用途!
 昨晚看到闪吧翻译flashcompoment.net的创建组件的方法。 觉得还少了一点儿什么,想想,原来是这样。

 1.大家做好了组件之后,只能在自己机子上用,可这样做,只有自已可以用到, 不能方便别人。 最好能打包成mxp的文件, 然后提供下载, 大家一起用嘛。

 2.那个例子没有监听对象, 只能是三角形, 不太灵活。

 
 首先说一下,这个组件是一个方向控制组件, 响应键盘的上,下,左,右方向键。可以使物体朝上,下, 左,右,左上, 右上, 左下,右下不同的八个方向运动.
 看看这个吧。 这是注册了监听给甲虫对象的。

 
 用ctrl+f8新建一个MC,并在此MC第一帧加上这些AS:

 #initclip
 // 构造MovementClass
 MovementClass = function () {
 };
 // 注册MovementClass
 Object.registerClass("Movement", MovementClass);
 // 加一个监听方法
 MovementClass.prototype.addListener = function(ref) {
 //把所要加的对象传给listener
 this.listener = ref;
 if (this.listener<>undefined) {
 // 检查是不是MC
 if (this.listener instanceof MovieClip) {
 // 嗯,可以了,使它的方法生效
 this.enabled = true;
 // 图标或者商标什么的全隐掉
 this._visible = false;
 } else {
 // 告诉用户你的目标不是有效的,这个目标方法无效
 trace("你引入的"+this.listener+"不是一个有效的物件");
 this.enabled = false;
 }
 } else {
 //告诉用户没有定义目标
 trace("你的目标呢?");
 this.enabled = false;
 }
 };
 // 去掉监听
 MovementClass.prototype.removeListener = function() {
 delete this.listener;
 };
 // 发送动作
 MovementClass.prototype.sendMovementEvent = function() {
 this.listener.onMovement(this.listener._rotation, this.listener._x, this.listener._y);
 };
 MovementClass.prototype.onEnterFrame = function() {
 if (this.enabled) {
 //正方向运动
 if (Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {
 this.listener._x -= this.speed;
 this.listener._rotation = 270;
 }
 if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {
 this.listener._x += this.speed;
 this.listener._rotation = 90;
 }
 if (Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
 this.listener._y -= this.speed;
 this.listener._rotation = 0;
 }
 if (Key.isDown(Key.DOWN) && !Key.isDown(Key.UP)) {
 this.listener._y += this.speed;
 this.listener._rotation = 180;
 }
 //
 // 斜方向的运动
 if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.DOWN)) {
 this.listener._rotation = 315;
 }
 if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.DOWN)) {
 this.listener._rotation = 45;
 }
 if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP)) {
 this.listener._rotation = 225;
 }
 if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.UP)) {
 this.listener._rotation = 135;
 }
 this.sendMovementEvent();
 }
 };
 #endinitclip

 然后用ctrl+L调出库面板,用右键点击这个MC,选择linkage.
 然后勾选如下。

 

 
 这个组件, 只有一个可选的参数speed,它是用来描述物体运动速度的,在库面板中点选compnet Definition 中,定义如下
 
 用别的什么软件搞一个图,像这样的:

 作为你的组件的图标。格式jpg,png,gif,规格20*20pixels左右.

 新建一个名为:FcustomIcons的文件夹(注意:不能取别的名字)
 导入你那张图,然后拖入这个文件夹里面, 这样你的组件图标就做好了。
 这时候你可以看见你的组件图标变成了这样:
 

 
 把这个flash存在C:\WINDOWS\Application Data\Macromedia\Flash MX\Configuration\Components里, 我用的是win98。其它的操作系统存的路径可以参照: 
 Windows 2000 and XP C:\document. and Settings\User\Application Data\Macromedia\Flash MX\Configuration\Components\ 

 Windows 98 and ME  C:\Windows\Application Data\Macromedia\Flash MX\Configuration\Components\ 

 Windows NT C:\WinNT\Profiles\User\Application Data\Macromedia\Flash MX\Configuration\ 

 MAC OS X HardDrive:Users:Library:Application Support:Macromedia:FlashMX:Configuration:Components 

 Mac OS 9.x (multi-user) Hard Drive:Users:User:document.:Macromedia :FlashMX:Configuration:Components 
  

 
 这样一来,你重启你的flash mx 就可以在组件框里看到你所做的组件了。

 接着就是定义xmi文件了, 因为只有通过xmi文件,Macromedia Extension Manger才可以把它打成mxp包。
 用一个记事本, 或者untraedit这种文本编辑器来定义这个文件。它完全是xml语法的。
 

 

 以上的红色字体分别代表该组件的名称,版本,作者,说明,用法。
 搞定要存在和那个fla文件同一路径下,格式为xmi.

 
 然后打开macromedia Extension Manger.
 照如图所示方式,点选file->package Extension 
 

 选择刚才存好的路径, 点选那个刚刚编辑过的mxi文件。
 

 然后点OK,选择存mxp文件的路径,这样你的mxp 包就打好了。

 
 打好包了,呵呵。 

 看看我的吧。

  [ 点击下载 ]http://file.flash8.net/2003up/2003/5/24/20035241339193715.rar

 嗯,下载完了之后再装这个组件。不要告诉我,你连装组件都不会咯, 那再用google去搜一下怎么装flash组件吧。

 装好后如图:
 

 
 你刚刚在xmi文件中定义的东西, 这里全都可以看得到了。

 现在是正式运用了。 
 用ctrl+f7把组件面板打开, 看到了有我们刚才做的组件了吧。
 拖一个到场景中,命名为:myMovement.

 用alt+f7可以定义组件的参数, 因为我们刚才做的时候只设了一个speed,默认为5.所以只有这一个选项,你可以调整这个数达到调整速度的效果。

 然后做一个MC,命名为myMC.我这里用的就是那个甲虫。
 做一个甲虫的阴影的MC,命名为shadow.(当然你也可以不做,这里只不过是举例说明监听事件发生怎么控制了)

 
 接着建立一个动态文本,命名为mytext.
 动画搞完了,就像这样:

 

 
 在场景的第一帧加上AS:

 myMovement.addListener(myMC);
 myMC.onMovement = function(rot, x, y) {
  with(shadow)
  {
   _x=x;
   _y=y;
   _rotation=rot;
  }
  mytext.text = "角度:"+rot+"  x坐标:"+x+"  y坐标:"+y;
 };

 
 OK,就是刚才你看到第一楼的效果了。这样下载来后根本没有干什么就搞定了一个很有意思的动画, 组件真的很好哦!!
文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。