自定义缓动类
package dys.moveobject{
import flash.events.Event;
public class SlowObject {
private var _object;
private var _x;
private var _y;
private var _speed;
private var _objectx;
private var _objecty;
private var _ismove:Boolean;
public function SlowObject(object,x,y,speed=5) {
_object=object;
_x=x;
_y=y;
_speed=speed;
_ismove=false;
}
public function move() {
_ismove=true;
_object.parent.addEventListener(Event.ENTER_FRAME,onslow);
}
public function stop() {
_ismove=false;
_object.parent.removeEventListener(Event.ENTER_FRAME,onslow);
}
private function onslow(e:Event) {
_objectx=_object.x;
_objecty=_object.y;
_object.x+=(_x-_object.x)/_speed;
_object.y+=(_y-_object.y)/_speed;
if (_objectx==_object.x&&_objecty==_object.y) {
stop();
_object.x=_x;
_object.y=_y;
}
}
public function set x(a) {
_x=a;
}
public function get x() {
return _x;
}
public function set y(a) {
_y=a;
}
public function get y() {
return _y;
}
public function set object(a) {
_object=a;
}
public function get object() {
return _object;
}
public function set speed(a) {
_speed=a;
}
public function get speed() {
return _speed;
}
public function get ismove() {
return _ismove;
}
}
}
//用法:
import dys.moveobject.SlowObject;
var m:SlowObject = new SlowObject(m_mc, 100, 100, 10);
//m_mc 为要缓动的对象;
//100,100为要缓动的对象到达的X坐标,Y坐标;
//10为要缓动的对象的缓动速度越大越慢!
m.move();//开始向目的地方缓动;
m.stop();//停止缓动;
m.ismove//是不是在缓动进行中;
m.object//重新设置缓动对象;
m.speed//重新设置缓动速度(缓动速度越大越慢);
m.x=100;
m.y=100;
//重新设置缓动目标位置;
//说明缓动到达目的地方后会自动停止.
浙公网安备 33010602011771号