用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   有意向写收费精品教程的朋友,请联系本站合作
当前位置 :首页>flash教程>Flash应用开发>列表

as2进行单个图片角色动作化处理

[来源:闪吧 | 作者:smallerbird | 时间:2008-06-10 | 点击:  | 收藏本文  【 】]
效果:

 

代码:
//flash原创代码
//尽在自娱自乐 www.MyGameMyLove.com
//单个图片角色动作化处理 as2.0
//在网上看关于这方面的文章:用的都是BitmapData类,来对图片进行切割。个人觉得没有那么麻烦。而且,有时候我们可能会把游戏的素村做成矢量的。来减小flash的体积。
//以下是个人的看法。
//还好flash8给我们提供了:MovieClip.cacheAsBitmap 属性,把矢量图缓存成位图。我可以查查帮助:
//提到:最好将 cacheAsBitmap 属性与主要具有静态内容且不频繁缩放和旋转的影片剪辑一起使用。对于这样的影片剪辑,在转换影片剪辑时(更改其 x 和 y 位置时),cacheAsBitmap 可以提高性能。
//这样我们在作单片人物动作,只需把所有动作用矢量的形式,放入一个mc中,用行列排好。
//用程序来进行控制:在其上放上一个电影符号来遮蔽,显示当前一个格的动画。
//本实例的素材用的是位图。
/*运行原理
新建一个空的电影符号:“mc_TableMovie”作为该动画的容器,将图片动画,导入库中。加上连接符号。这里我设的为"1"
然后设置一个TableMovie动画对象给mc_TableMovie ,对象会自动在“mc_TableMovie”中生成两个mcImg:存放动画图片,mcMask:用于遮蔽的电影符号.
在_root.onEnterFrame,来做循环播放
*/
_root.createEmptyMovieClip("mc_TableMovie", _root.getNextHighestDepth());
mc_TableMovie._x = 28;
mc_TableMovie._y = 20;
//mc_TableMovie.attachMovie("1","mcImg",mc.getNextHighestDepth());
//mc容器,link编号
//starX,starY图片中的动画元素开始的坐标
//hang,lie:行,列
//W,H:宽,高
//movieType 0 循环显示列//目前只作了0类型 1 循环显示所有
var obj_mc_TableMovie:TableMovie = new TableMovie(mc_TableMovie, "1", 0, 0, 4, 4, 63, 93, 0, 1);
obj_mc_TableMovie.setHang(3);
//按键
var numFX:Number = 1;
var DISTANCE = 5;
//
_root.onEnterFrame = function() {
obj_mc_TableMovie.go();
//就这个图片而言,每行代码一个方向的状态。
obj_mc_TableMovie.setHang(numFX);
};
//key
//键盘检测///////////////
var keyListener_obj:Object = new Object();
keyListener_obj.onKeyDown = function() {
switch (Key.getCode()) {
case Key.SPACE :
trace("space");
break;
case Key.LEFT :
numFX = 1;
break;
case Key.UP :
numFX = 3;
break;
case Key.RIGHT :
numFX = 2;
break;
case Key.DOWN :
numFX = 0;
break;
}
};
Key.addListener(keyListener_obj);


///////////////////TableMovie类
class TableMovie {
public var mc:MovieClip;
//
public var moiveSD:Number;
private var moiveSD_i = 1;
//
private var mcImg:MovieClip;
private var mcMask:MovieClip;
//
private var starX:Number;
private var starY:Number;
private var hang:Number;
private var lie:Number;
private var W:Number;
private var H:Number;
private var EW:Number;
private var EH:Number;
//当前
public var NX:Number;
public var NY:Number;
private var movieType:Number;
//
//mc容器,link编号
//starX,starY图片中的动画元素开始的坐标
//hang,lie:行,列
//W,H:宽,高
//movieType 0 循环显示列//目前只作了0 1 循环显示所有
//当前fps的倍数移动moiveSD
function TableMovie(mc:MovieClip, linkId:String, starX:Number, starY:Number, hang:Number, lie:Number, W:Number, H:Number, 
movieType:Number, moiveSD:Number) {
this.mc = mc;
this.moiveSD = moiveSD;
//
NX = 0;
NY = 0;
//
this.starX = starX;
this.starY = starY;
this.hang = hang;
this.lie = lie;
this.W = W;
this.H = H;
this.movieType = movieType;
//
this.EW = W/lie;
this.EH = H/hang;
//
mcImg = mc.attachMovie(linkId, "mcImg", mc.getNextHighestDepth());
//
mcMask = mc.createEmptyMovieClip("mcMask", mc.getNextHighestDepth());
mcMask.beginFill(0xFF00FF, 100);
mcMask.lineStyle(0, 0xFF00FF, 100);
mcMask.moveTo(0, 0);
mcMask.lineTo(EW, 0);
mcMask.lineTo(EW, EH);
mcMask.lineTo(0, EH);
mcMask.lineTo(0, 0);
mcMask.endFill();
//
mcImg.setMask(mcMask);
}
function go() {
if (moiveSD_i++>moiveSD) {
moiveSD_i = 1;
//
if (movieType == 0) {
NX++;
if (NX>=lie) {
NX = 0;
}
setHangLie();
} else if (movieType == 1) {
//没有作
} else {
trace("类型指定错误!");
}
}
}
//end go
function setHangLie() {
mcImg._x = -(NX*EW);
mcImg._y = -(NY*EH);
}
function setHang(numHang:Number) {
if (numHang<0 || numHang>hang) {
NY = hang;
return 0;
}
NY = numHang;
}
}
////
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:Flash Plaery10 Astro 滤镜初体验(附加源码下载)
下一篇:FLASH加载XML:可分页相册的制作(附源码)
Tags:    
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  教程分类
  基础操作   动画特效
  应用开发   组件学习
  As程序   动画教程
  Flash cs3   AS 3.0
  FCS/FMS教程   Loading教程
  Flash与Web   Flash教程连载
  相关文章
·FLASH加载XML:可分页相册的制作
·as2进行单个图片角色动作化处理
·Flash Plaery10 Astro 滤镜初体
·Flash Player 10 Astro API新增
·Flash Player 10 Drawing API
·Flash导出SWC&Flex使用SWC
·FLASH推箱子游戏分析(三)推动
·flash打造抽奖类小游戏(不可重
·Flash拖拽问题通用解决代码(含as
·flash SWFUpload debug之旅
  热门文章
·Flash进度条的制作详细讲解(组图)
·flash幻灯片网页效果
·Flash打造简单的飘雪动画视觉特效
·Flash旋转拖尾文字效果的制作教程
·flash水影效果字
·全Flash动画网站实现的基础教学
·超酷flash光晕移动效果
·flash春雷闪电效果
·Flex 3 AdvancedDataGrid的使用(第二
·Flash制作大雪纷飞效果动画
·即拷即用的loading代码
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号