module es { /** * 通用ITweenTarget用于所有属性tweens。 */ class PropertyTarget implements ITweenTarget { protected _target; protected _propertyName; constructor(target, propertyName: string) { this._target = target; this._propertyName = propertyName; } public getTargetObject() { return this._target; } public setTweenedValue(value: T) { this._target[this._propertyName] = value; } public getTweenedValue(): T { return this._target[this._propertyName]; } } export class PropertyTweens { public static NumberPropertyTo(self, memberName: string, to: number, duration: number): ITween { let tweenTarget = new PropertyTarget(self, memberName); let tween = TweenManager.cacheNumberTweens ? Pool.obtain(NumberTween) : new NumberTween(); tween.initialize(tweenTarget, to, duration); return tween; } public static Vector2PropertyTo(self, memeberName: string, to: Vector2, duration: number): ITween { let tweenTarget = new PropertyTarget(self, memeberName); let tween = TweenManager.cacheVector2Tweens ? Pool.obtain(Vector2Tween) : new Vector2Tween(); tween.initialize(tweenTarget, to, duration); return tween; } } }