TweenProperty
class
class TweenProperty {
final DisplayObject _displayObject;
final int _propertyIndex;
num _startValue = double.NAN;
num _targetValue = double.NAN;
num _deltaValue = double.NAN;
TweenProperty._internal(this._displayObject, this._propertyIndex);
/// Animate the property from the current value to a given target value.
void to(num targetValue) {
_targetValue = targetValue.toDouble();
}
/// Animate the property from the current value by a given delta value.
void by(num deltaValue) {
_deltaValue = deltaValue.toDouble();
}
void _init() {
switch(_propertyIndex) {
case 0: _startValue = _displayObject.x; break;
case 1: _startValue = _displayObject.y; break;
case 2: _startValue = _displayObject.pivotX; break;
case 3: _startValue = _displayObject.pivotY; break;
case 4: _startValue = _displayObject.scaleX; break;
case 5: _startValue = _displayObject.scaleY; break;
case 6: _startValue = _displayObject.skewX; break;
case 7: _startValue = _displayObject.skewY; break;
case 8: _startValue = _displayObject.rotation; break;
case 9: _startValue = _displayObject.alpha; break;
default: _startValue = 0.0;
}
if (_deltaValue.isNaN && _targetValue.isFinite) {
_deltaValue = _targetValue - _startValue;
}
if (_targetValue.isNaN && _deltaValue.isFinite) {
_targetValue = _startValue + _deltaValue;
}
}
void _update(num transition, bool roundToInt) {
if (_startValue.isFinite && _targetValue.isFinite) {
var value = _startValue + transition * (_targetValue - _startValue);
value = roundToInt ? value.roundToDouble() : value;
switch(_propertyIndex) {
case 0: _displayObject.x = value; break;
case 1: _displayObject.y = value; break;
case 2: _displayObject.pivotX = value; break;
case 3: _displayObject.pivotY = value; break;
case 4: _displayObject.scaleX = value; break;
case 5: _displayObject.scaleY = value; break;
case 6: _displayObject.skewX = value; break;
case 7: _displayObject.skewY = value; break;
case 8: _displayObject.rotation = value; break;
case 9: _displayObject.alpha = value; break;
}
}
}
}
Methods
void by(num deltaValue) #
Animate the property from the current value by a given delta value.
void by(num deltaValue) {
_deltaValue = deltaValue.toDouble();
}
void to(num targetValue) #
Animate the property from the current value to a given target value.
void to(num targetValue) {
_targetValue = targetValue.toDouble();
}