直角移动 |
| 作者:佚名 来源:闪吧 作者: shuhankuang 更新:2007-1-13 20:48:34 错误报告 我要投稿 |
xdir = (destx<x) ? -1 : 1 ydir = (desty<y) ? -1 : 1; 这是和IF ...else..的原理一样!但是简写的!!! onClipEvent (load) { speed = 10;//定义速度 x = _x;//当前的X位置 y = _y;//当前的Y位置 } onClipEvent (mouseDown) { destx = _root._xmouse;//鼠标的位置 desty = _root._ymouse; xdir = (destx<x) ? -1 : 1;//如果(destx<x)成立xdir就为-1,否则就为1 ydir = (desty<y) ? -1 : 1;//如果(desty<y)成立ydir就为-1,否则就为1 _parent.mxy = pos="x: "+destx+", y:"+desty;//文本框显示的坐标 } //向左移动时 //如果小x-destx>0,就可以继续向左移动 //向右移动 //如果destx-x>0,就继续向右移动 //整理后 //左x-desx>0(变量xdir为-1) //右-x+destx>0(变量xdir为1) //所以 //左 :-x*xdir+destx*xdir=-x*(-1)+destx*(-1)=x-destx //右 :-x*xdir+destx*xdir=-x*1+destx*1=-x+destx=destx-x //结论 // -x*xdir+destx*xdir
onClipEvent (enterFrame) { if (-x*xdir+destx*xdir>0) { x += speed*xdir; _x = x; } if (-y*ydir+desty*ydir>0) { y += speed*ydir; _y = y; } pos = "x: "+_x+", y:"+_y; }
改了为 onClipEvent (enterFrame) { if (-x*xdir+destx*xdir>0) { x += speed*xdir; _x = x; } else if (-y*ydir+desty*ydir>0) { y += speed*ydir; _y = y; } pos = "x: "+_x+", y:"+_y; }
这里用else if 就能先判断x后是Y,那样就有下面的效果!!!
点击浏览该文件
|
|
| 文章录入:skyuu 责任编辑:skyuu |
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |