4
专家更新,问题和操纵表达
我不能找出为什么操纵表达正被评估每次我点击“StepRightButton”,这是一个触发控制的一部分的2倍。
当我点击'+'按钮时,我发现计数器按预期增加了一次,但表达式正在评估2次,而不是预期的一次。这里是一个小例子
Manipulate[
Show[
[email protected]@Row[{currentTime," ",Date[]}],
Plot[Sin[x],{x,-Pi,Pi}]
],
Control[{{currentTime,0,Style["run",10]},0,100,0.1,
ControlType->Trigger,DisplayAllSteps->True,ImageSize->Tiny,
AnimationRate->Automatic,AnimationRepetitions->0,
AppearanceElements->{"PlayButton","PauseButton","StepRightButton","ResetButton"}}
],
ContinuousAction->False,
SynchronousUpdating->False
]
再次,点击“+”表示“currentTime的”变量被增加了正确的量(0.1在本例中)。但是我的问题是,为什么表达式会被证据显示两次,每次点击'+'按钮都会看到Date []打印增加2次。
这会导致我的问题,因为我假设表达式会每'tick'评估一次。
这是一种确保每次点击“+”一次后评估表达式的方法吗?
感谢,
非常好!我不知道有什么叫做“如果有必要,在操纵结束时画出更高的逼真度”。我从来没有听说过这样的事情。我认为有一些动态或时间问题,但不是我能看到的。这些东西是否记录在某处?这是否仅适用于绘图?谢谢! – Nasser
在tutorial/AdvancedDynamicFunctionality中有这方面的内容。请参阅'ControlActive' –
@Nasser ...并且不要忘记'PerformanceGoal'和'$ PerformanceGoal'的文档页面。在后者中,您会发现:* $ PerformanceGoal的典型默认值是ControlActive [“Speed”,“Quality”]。* –