import Motion;
class Tween extends Motion {
var func:Function;//变形函数
var finish:Number;//运动开始位置
var begin:Number;//动动结束位置
var change:Number;//位置的改变
var duration:Number;//运动持续的时间
/********************************************/
function setFunc(f:Function):Void{
this.func=f;
}
function getFunc():Function{
return this.func;
}
function setFinish(f:Number):Void{
this.change = f - this.begin;
}
/*因为变形函数是以位置的改变为参数的,所以setFinish方法是用来获得change值的*/
function getFinish():Number{
return this.begin + this.change;
}
function setChange(c:Number):Void{
this.change = c;
}
function getChange():Number{
return this.change;
}
function getPosition(t:Number):Number{
if (t == undefined) t = this.time;
return func(t,begin,change,duration);
}
/********************************************/
function toString():String{
return "[Tween obj=" + this.obj + " prop=" + this.prop +
" beg=" + this.begin + " fin=" + this.finish + " dur=" + this.duration +
" t=" + this.time +
" pos=" + this.getPosition() + "]";
}
function continueTo(finish:Number,duration:Number):Void{
this.setBegin (this.getPosition());
this.setFinish (finish);
if (duration != undefined)
this.setDuration (duration);
this.start();
}
function yoyo():Void{
with (this) {
continueTo (getBegin(), getTime());
}
}
/********************************************/
function Tween( obj:MovieClip,prop:String,func:Function,begin:Number,finish:Number,duration:Number, useSeconds:Boolean){
super(obj, prop, begin, duration, useSeconds);
this.setFunc (func);
this.setFinish (finish);
}
}









