public override void update (float t)
{
//Make sure endFrame not equals to startFrame when init
if (_endFrame > _startFrame) {
int toFrame = _startFrame + (Mathf.FloorToInt ((_endFrame - _startFrame + 1) * t));
toFrame = Mathf.Min (toFrame, _endFrame);
int nextFrame = _movie.currentFrame + 1;
if(toFrame > nextFrame){
for (int i=nextFrame; i < toFrame; i++) {
if(_movie.tweenMode == kTweenMode.SkipFrames || (_movie.tweenMode==kTweenMode.SkipNoLabelFrames && !_movie.hasLabel(i)))
_movie.SkipFrame(i);
else
_movie.GotoFrame(i);
if(_stoped){
return;
}
}
}
if(toFrame != _movie.currentFrame){
_movie.GotoFrame(toFrame);
}
} else {
int toFrame = _startFrame + (Mathf.CeilToInt ((_endFrame - _startFrame - 1) * t));
toFrame = Mathf.Max (toFrame, _endFrame);
int nextFrame = _movie.currentFrame - 1;
if(toFrame < nextFrame){
for (int i=nextFrame; i > toFrame; i--) {
if(_movie.tweenMode == kTweenMode.SkipFrames || (_movie.tweenMode==kTweenMode.SkipNoLabelFrames && !_movie.hasLabel(i)))
_movie.SkipFrame(i);
else
_movie.GotoFrame(i);
if(_stoped){
return;
}
}
}
if(toFrame != _movie.currentFrame){
_movie.GotoFrame(toFrame);
}
}
}