Flash实现人物在界面上行走

Flash动画


一、主要元件

1.动态文本(text1):用于显示人物坐标
2.人物元件(girl)
3.透明按钮(btn1):主要利用其点击事件来激发函数获取鼠标位置

本例所用素材(女孩、狗、地图)均为我弟张远兴制作的像素图,在此表示感谢!

二、ActionScript

1.帧脚本

//全局变量
var speed:Number = 25; //移动速度 单位:px/s
var speed2:Number = 100; //循环间隔  单位:ms
var time:Number; //总时间
var time2:Number = 0; //计时器
var Lx:Number,Ly:Number; //单位时间位移
var Intervalid:Number;
var x1:Number = girl._x; //初始X坐标为人物X坐标
var y1:Number = girl._y; //初始Y坐标为人物Y坐标
var x2:Number,y2:Number; //终点X、Y坐标

btn1._width = Stage.width; //按钮宽为屏幕宽
btn1._height = Stage.height; //按钮高为屏幕高

//函数:计算Lx,Ly
function returnLxLy(){
    var L:Number; //两点间路程
    x2 = _root._xmouse;
    y2 = _root._ymouse;
    //Math.sqrt(Math.pow(Math.abs(3-7),2))
    L = Math.sqrt(Math.pow(Math.abs(x2)-Math.abs(x1),2) + Math.pow(Math.abs(y2)-Math.abs(y1),2));
    time = L / speed;
    Lx = ((x2-x1)*speed*speed2)/(L*1000);
    Ly = ((y2-y1)*speed*speed2)/(L*1000);    
}

//函数:移动人物
function moveto(){
    time2 = time2 + speed2/1000;
    if(time2>time){clearInterval(Intervalid);}
    x1 = x1 + Lx;
    y1 = y1 + Ly;
    girl._x = x1;
    girl._y = y1;
    text1.text = "坐标:" + Math.round(x1) + ":"+ Math.round(y1);
}

2.按钮点击事件脚本

on (release) {
    time2 = 0;
    clearInterval(Intervalid);
    returnLxLy();
    Intervalid = setInterval(this, "moveto", speed2);
}


三、本例源码:点击下载

评论: 0 | 引用: 0 | 查看次数: 5038
发表评论
登录后再发表评论!