我一直在做一个小游戏,我需要一个进度条动画,当我第一次触摸按钮时开始,如果我在动画结束之前再次触摸按钮,则进度条需要重置。
在我的代码 Sub WebSMacro()
Dim IE As Object
Dim Webloc As String
Dim FullWeb As String
Webloc = ActiveSheet.Range("B39").Value
FullWeb = "http://www.example.com=" & Webloc
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate FullWeb
Do While IE.Busy
Application.Wait DateAdd("s", 1, Now)
Loop
IE.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER
Application.Wait DateAdd("s", 10, Now)
IE.Quit
Set IE = Nothing
End Sub
中效果不错,但animation.start();
似乎不起作用。
French Version of this Question
我的活动代码包含不起作用的行:
animation.cancel()
答案 0 :(得分:0)
我认为问题在于animation.cancel()
没有效果,因为您在它之后立即调用animation.start();
。
尝试这样的事情:
声明一个字段:
private boolean mStarted = false;
然后在动画回调中设置它并检查其值:
animation.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
mHasStarted = true;
}
@Override
public void onAnimationEnd(Animator animation) {
mHasStarted = false; // reset the field value so that it can be started again onClick once it has ened
}
@Override
public void onAnimationCancel(Animator animation) {
mHasStarted = false;
}
});
if (mStarted) {
animation.cancel();
} else {
animation.start();
}
希望这有帮助!