<css.shtml' target='_blank' title = 'div视频教程'>div class="codeblock">//参数
var 落下速度:Number=0;
var 重力加速度:Number=1;
var 主角跳动速度:Number=-15;
var 主角走动速度:Number=4;
var 主角跑动速度:Number=8;
//主角状态
var 主角:MovieClip=小子;
var 主角左:Number=-主角.scaleX;
var 主角右:Number=主角.scaleX;
var 动画:Boolean;
var 空中:Boolean=true;
var 被攻击:Boolean;
var 攻击方式:String;
var 攻击力量:Number=0;
var 走:Boolean;
var 跑:Boolean;
var 攻击:Boolean;
var 跳:Boolean;
//
var 动作:Object=new Object;
动作.走=false;
//按键状态
var 键盘:Object=new Object;
//方向键:上W(87),下S(83),左A(65),右D(68)
//动作键:攻击拳J(74),跳K(75)
键盘.上=87;//38
键盘.下=83;//40
键盘.左=65;//37
键盘.右=68;//39
键盘.攻击=74;//16
键盘.跳=75;//17
键盘.按_上=false;
键盘.按_下=false;
键盘.按_左=false;
键盘.按_右=false;
键盘.按_攻击=false;
键盘.按_跳=false;
//
//--------------------------------计数刷新器-----------------------------------------
var 计数刷新器:Timer=new Timer(100,0);
var 数字:Number=100;
计数刷新器.start();
计数刷新器.addEventListener(TimerEvent.TIMER,计数刷新开始);
function 计数刷新开始(e:TimerEvent):void {
数字++;
}
//
//--------------------------------人物初始化------------------------------------------
//
var 人物初始化:Function=function() {
攻击方式=null;
动画=false;
主角.gotoAndStop("站");
if((键盘.按_左 || 键盘.按_右) && 走){
主角.gotoAndStop("走");
}
if((键盘.按_左 || 键盘.按_右) && 跑) {
主角.gotoAndStop("跑");
}
};
//
//---------------------------------按键监听-----------------------------------------
//
stage.addEventListener(KeyboardEvent.KEY_DOWN,按下);
function 按下(e:KeyboardEvent):void {
if (e.keyCode==键盘.上 && !键盘.按_上) {
键盘.按_上=true;
}
if (e.keyCode==键盘.下 && !键盘.按_下) {
键盘.按_下=true;
}
if (e.keyCode==键盘.左 && !键盘.按_左) {
键盘.按_左=true;
if (数字<3) {
走=false;
跑=true;
} else {
数字=0;
走=true;
跑=false;
}
}
if (e.keyCode==键盘.右 && !键盘.按_右) {
键盘.按_右=true;
if (数字<3) {
走=false;
跑=true;
} else {
数字=0;
走=true;
跑=false;
}
}
if (e.keyCode==键盘.攻击 && !键盘.按_攻击) {
键盘.按_攻击=true;
}
if (e.keyCode==键盘.跳 && !键盘.按_跳) {
键盘.按_跳=true;
}
}
stage.addEventListener(KeyboardEvent.KEY_UP,松开);
function 松开(e:KeyboardEvent):void {
if (e.keyCode==键盘.上 && 键盘.按_上) {
键盘.按_上=false;
}
if (e.keyCode==键盘.下 && 键盘.按_下) {
键盘.按_下=false;
}
if (e.keyCode==键盘.左 && 键盘.按_左) {
键盘.按_左=false;
}
if (e.keyCode==键盘.右 && 键盘.按_右) {
键盘.按_右=false;
}
if (e.keyCode==键盘.攻击 && 键盘.按_攻击) {
键盘.按_攻击=false;
}
if (e.keyCode==键盘.跳 && 键盘.按_跳) {
键盘.按_跳=false;
}
}
//
//------------------------------人物监听--------------------------------------------
//
stage.addEventListener(Event.ENTER_FRAME,人物监听);
function 人物监听(e:Event):void {
//按左右下方向键
if (键盘.按_左 && 键盘.按_右) {
if (跑) {
跑=false;
}
//
} else {
if (键盘.按_左) {//按左键
if (!被攻击) {
if (走) {
if (!动画 && !空中 && 攻击方式==null && !动作.走) {
动作.走=true;
主角.gotoAndStop("走");
}
if (空中 || 攻击方式==null) {
主角.x-=主角走动速度;
}
}
if (跑) {
if (!动画 && !空中 && 攻击方式==null && !动作.跑) {
动作.跑=true;
主角.gotoAndStop("跑");
}
if (空中 || 攻击方式==null) {
主角.x-=主角跑动速度;
}
}
if (攻击方式==null) {
主角.scaleX=主角左;
}
}
} else if (键盘.按_右) {//按右键
if (!被攻击) {
if (走) {
if (!动画 && !空中 && 攻击方式==null && !动作.走) {
动作.走=true;
主角.gotoAndStop("走");
}
if (空中 || 攻击方式==null) {
主角.x+=主角走动速度;
}
}
if (跑) {
if (!动画 && !空中 && 攻击方式==null && !动作.跑) {
动作.跑=true;
主角.gotoAndStop("跑");
}
if (空中 || 攻击方式==null) {
主角.x+=主角跑动速度;
}
}
if (攻击方式==null) {
主角.scaleX=主角右;
}
}
} else {
if (!被攻击) {
if (!动画 && !空中 && 攻击方式==null) {
走=false;
跑=false;
动作.走=false;
动作.跑=false;
主角.gotoAndStop("站");
}
}
}
}
//按下攻击键
if (键盘.按_攻击 && !攻击 ) {
攻击=true;
if (!被攻击 && 攻击方式==null) {
//普通攻击
攻击方式="攻击";
攻击力量=7;
//
主角.gotoAndStop(攻击方式);
}
} else if (!键盘.按_攻击 && 攻击) {
攻击=false;
}
//按下跳键
if (键盘.按_跳 && !跳) {
跳=true;
if (!空中 && !被攻击) {
空中=true;
落下速度=主角跳动速度;
if (攻击方式==null) {
主角.gotoAndStop("跳上");
提取声音("跳上声");
}
}
} else if (!键盘.按_跳 && 跳) {
跳=false;
if (落下速度<-5) {
落下速度+=8;
if (落下速度>0) {
落下速度=0;
}
}
}
//
//如果目前在空中的话
if (空中) {
落下速度+=重力加速度;
主角.y+=落下速度;
if (落下速度>0) {
if (主角.判断人物.hitTestObject(判断路地)) {
空中=false;
主角.y=判断路地.y;
}
}
}
if (空中 && 落下速度>=0) {
if (攻击方式==null) {
主角.gotoAndStop("跳下");
}
}
//
//
}