Il est utile d'utiliser un déclencheur pour l'animation, mais je ne parviens pas à trouver un moyen de modifier l'état du déclencheur dans le code (c'est-à-dire sans avoir à appuyer moi-même sur le bouton Pause ou Lecture).
Par exemple, supposons que je veuille faire une simulation où, lorsqu'un événement se produit, je veux que le déclencheur actuellement actif passe à l'état PAUSE, et lorsqu'un autre événement se produit, je veux que le déclencheur passe à l'état PLAY.
Les boutons pour le faire seront toujours là, mais je veux aussi pouvoir les modifier à partir du code sans avoir à le faire physiquement.
La raison en est que je suis en train d'effectuer une action, et le fait que le déclencheur soit en mode PLAY pendant que je fais cette autre action fait que les choses ne fonctionnent pas.
J'ai donc besoin de le faire passer en mode PAUSE, et quand j'ai terminé, je peux le remettre en mode PLAY.
Voici un petit exemple de ce que je veux dire :
Manipulate[
EventHandler[
Dynamic@Graphics[
{Circle[{0,0},1], Text[n,pt] },
PlotRange->All,ImageSize->200,ImagePadding->10],
{
"MouseDown":>
(
(* What to do here to cause the trigger to become Paused?"*)
pt=MousePosition["Graphics"]
),
"MouseDragged":>
(
(* while dragging, the trigger remains in PAUSED state "*)
Print["mouse dragged"];
pt=MousePosition["Graphics"]
),
"MouseUp":>
(
Print["MouseUp"]
(* What to do here to cause the trigger to Play again?"*)
)
}
],
Control[{{n,0,"Run"},0,100,0.01,
ControlType->Trigger, DisplayAllSteps->True, AnimationRate->1,
AppearanceElements->{"PlayPauseButton","ResetButton"}}
],
{{pt,{0,0}},ControlType->None}
]
Dans l'exemple ci-dessus, lorsque je fais glisser la souris sur l'écran, je veux que le déclencheur devienne PAUSÉ afin que le nombre affiché ne change pas pendant que je fais glisser la souris. Lorsque le déplacement est terminé, je peux alors faire en sorte que le déclencheur soit de nouveau PLAY si nécessaire.
Donc, ma question : Y a-t-il un moyen de changer l'état du déclencheur comme ci-dessus dans le code ?
Je peux bien sûr ne pas utiliser trigger du tout, et tout coder moi-même d'une autre manière, mais j'ai pensé demander avant d'abandonner, car trigger est pratique à utiliser.
Voici un lien vers plus de documentation sur le déclencheur et les boutons.
La chose la plus proche que j'ai trouvée est l'option Enabled-> pour le trigger, mais cela rend juste le trigger lui-même activé ou non, et n'affecte pas l'état du trigger. i.e. si le trigger est activé, il le restera même si je le désactive.
http://reference.wolfram.com/mathematica/ref/Manipulator.html
http://reference.wolfram.com/mathematica/ref/Trigger.html
merci