//移动按钮的工具
//
//作者:春暖花开2013
//日期:2014/10/24
//
//给定按钮、移动座标、移动时间就会将它移到目的座标
//用法:moveBtn(fml(1,0), x, y, time)
class moveBtn{
var moveT = new Timer(move, **);
moveT.interval = 16; //约30fps
var dx; //目的x座标
var dy; //目的y座标
var sx; //来源x座标
var sy; //来源y座标
var time; //移动时间
var btn; //按钮
var xd; //两X座标间的距离
var yd; //两y座标间的距离
var xm; //x轴位移量
var ym; //y轴位移量
function moveBtn(ml, x, y, time){
btn = ml.object;
dx = x;
dy = y;
sx = btn.left;
sy = btn.top;
this.time = time;
//带正负号的距离
xd = dx - sx;
yd = dy - sy;
xm = (int) (xd / (int)(time /16)); //每十六毫秒x轴移动多少距离
ym = (int) (yd / (int)(time /16)); //每十六毫秒y轴移动多少距离
moveT.enabled = true;
}
function move(){
var x = btn.left + xm;
var y = btn.top + ym;
dm(*(*+dx+", "+dy+*) *+*(*+x+*, *+y+*) *+*(*+xm+*, *+ym+*)*);
if (x > dx || y > dy){
dm(*set to: *+dx+*, *+dy);
btn.setPos(dx, dy);
moveT.enabled = false;
}
else btn.setPos(x, y);
}
}
//--------------------------------------
//移动多个按钮时用
class mBtnPerfs{
var mbtnperf = []; //移动按钮工具阵列
var n; //当前使用的下标
function mBtnPerfs(){
n = 0;
}
function add(ml, x, y, time){
mbtnperf[n] = new moveBtn(ml, x, y, time);
++n;
}
//加了这段将会在eval内调用完后 就报已回收的错误。。
/*
function finalize(){
invalidate mbtnperf;
invalidate n;
}*/
}
//
//作者:春暖花开2013
//日期:2014/10/24
//
//给定按钮、移动座标、移动时间就会将它移到目的座标
//用法:moveBtn(fml(1,0), x, y, time)
class moveBtn{
var moveT = new Timer(move, **);
moveT.interval = 16; //约30fps
var dx; //目的x座标
var dy; //目的y座标
var sx; //来源x座标
var sy; //来源y座标
var time; //移动时间
var btn; //按钮
var xd; //两X座标间的距离
var yd; //两y座标间的距离
var xm; //x轴位移量
var ym; //y轴位移量
function moveBtn(ml, x, y, time){
btn = ml.object;
dx = x;
dy = y;
sx = btn.left;
sy = btn.top;
this.time = time;
//带正负号的距离
xd = dx - sx;
yd = dy - sy;
xm = (int) (xd / (int)(time /16)); //每十六毫秒x轴移动多少距离
ym = (int) (yd / (int)(time /16)); //每十六毫秒y轴移动多少距离
moveT.enabled = true;
}
function move(){
var x = btn.left + xm;
var y = btn.top + ym;
dm(*(*+dx+", "+dy+*) *+*(*+x+*, *+y+*) *+*(*+xm+*, *+ym+*)*);
if (x > dx || y > dy){
dm(*set to: *+dx+*, *+dy);
btn.setPos(dx, dy);
moveT.enabled = false;
}
else btn.setPos(x, y);
}
}
//--------------------------------------
//移动多个按钮时用
class mBtnPerfs{
var mbtnperf = []; //移动按钮工具阵列
var n; //当前使用的下标
function mBtnPerfs(){
n = 0;
}
function add(ml, x, y, time){
mbtnperf[n] = new moveBtn(ml, x, y, time);
++n;
}
//加了这段将会在eval内调用完后 就报已回收的错误。。
/*
function finalize(){
invalidate mbtnperf;
invalidate n;
}*/
}