Clear["Global`*"]
i = 0; j = 0;
signal = False;
count = 0;
f[x_] := Graphics[{Circle[{0, 0}, 2], Circle[{x, 0}, 1]}];
nb = CreateDialog[
DynamicModule[{}, Dynamic@(If[signal, count = Clock[{0, Infinity}]];
If[count >= 5, count = 5;
signal = False]; {If[5 > count > 0, f[j = j + 0.01], f[j]],
signal, count, j})], WindowSize -> Medium]
SetOptions[nb,
NotebookEventActions -> {"MouseUp" :> (signal = True; count = 0)}]
(*鼠标抬起信号为signal,当抬起时signal为真,计时器count归0,然后动态监测 signal,因为抬起后signal保持为真,故
count在每次更新会变为Clock[{0,Infinity}]\
的一个值,然后接下来监测count,当计数器值大于5,让计数器保持为5,同时计时满了让signal重新归为False,\
故在计时未满期间,count会大于0小于5,然后这时画f[j=j+0.01]画出个流畅的运动,并且当count不满足在(0,5)区间的话j=\
j,只画f[j]*)
(*我想说的是为什么第2次再抬起鼠标没有用啊,我明明都让计数器归0了*)
(*我不是想做gif...,这里我想每次松开鼠标就是类似球发射出去,然后一段时间受到阻力停下来到新的位置,然后再点击松开鼠标,球在新的位置被踢出去*)
(*现在再次按松开鼠标没有用,我明明让count归0了,实在不知道怎么办*)