![](https://secure.gravatar.com/avatar/6114858d84b0f40cf715f12237ab67a1.jpg?s=120&d=mm&r=g)
I don't get it. Examples (animations) on http://www.fi.muni.cz/~xholecek/animations/ compile and work OK with my TeX and Acrobat (Windows XP, Adobe Acrobat Professional 6.0.1). However, the example below doesn't work on my computer. I replaced some lines below with: \starttext \placefigure [here] [fig:animation] {A simple \MetaFun\ animation, click \goto {here} [JS(Rotate_Star)] to start (or stop) or % this line was added as described in MetaFun manual click \goto {here} [JS(Walk_Field{vortex})] for next step} {\fieldstack [vortex]} \stoptext which results in the PDF file attached. Stepping in JS(Walk_Field{vortex}) works OK, while continuous animation in JS(Rotate_Star) doesn't. Is this because of my (old?) ConTeXt distribution (ver 2005.01.31, fmt 2005.5.16), because of my (old/buggy?) Acrobat/OS or because of problems in JavaScript? Thank you, Mojca Willi Egger wrote:
Hi Richard,
thanks for this example. I tried it and voilà!
Willi
Richard Hirsch wrote:
Richard Rascher-Friesenhausen asked
So again. Is it possible to write something like the above animation
packages
in ConTeXt (as a module)?
If Acrobat can display them, ConTeXt can generate them.
Here is a simple example.
\setupoutput [pdf] \setupcolors [state=start] \setupinteraction [state=start] \setuppapersize [S6][S6]
%% this is just code to get something to animate \startMPinclusions picture thearrow, thestar;
drawarrow (origin--up) scaled 10mm withpen pencircle scaled 3pt withcolor .9 red; setbounds currentpicture to (fullcircle scaled 22mm);
thearrow:= currentpicture scaled 5; currentpicture:= nullpicture;
for angle=0 step 72 until 359: draw thearrow rotated angle; endfor
thestar:= currentpicture; currentpicture:= nullpicture \stopMPinclusions
\setupMPvariables [drawstar] [rotation=0] \startuniqueMPgraphic{drawstar}{rotation} draw thestar rotated \MPvar{rotation}; \stopuniqueMPgraphic
%% now we define some symbols (the frames of the animated sequence) \def\definestarsymbol#1{% \definesymbol [star #1] [\uniqueMPgraphic{drawstar}{rotation=#1}]}
\definestarsymbol{0} \definestarsymbol{6} \definestarsymbol{12} \definestarsymbol{18} \definestarsymbol{24} \definestarsymbol{30} \definestarsymbol{36} \definestarsymbol{42} \definestarsymbol{48} \definestarsymbol{54} \definestarsymbol{60} \definestarsymbol{66}
%% the frames are put into a fieldstack \definefieldstack [vortex] [star 0, star 6, star 12, star 18, star 24, star 30, star 36, star 42, star 48, star 54, star 60, star 66]
%% and this is the JavaScrip code that displays the frames one by one \startJSpreamble MyField used later var current = 1; var delay = 200; % 200 milliseconds var timer; var running = false; % animation currently not running
function Advance_Angle ( ) { this.getField("vortex:"+current).value = "Off"; if (++current > 12) % number of frames { current = 1; } % loop through frames this.getField("vortex:"+current).value = "On"; } \stopJSpreamble
%% we want to control the starting and stopping of the animation \startJScode Rotate_Star uses MyField if (running) { try { app.clearInterval(timer); } catch(except) {}; running = false; } else { timer = app.setInterval("Advance_Angle()",delay); running = true; } \stopJScode
\starttext \placefigure [here] [fig:animation] {A simple \MetaFun\ animation, click \goto {here} [JS(Rotate_Star)] to start (or stop)} {\fieldstack [vortex]} \stoptext
Best regards,
Richard