summaryrefslogtreecommitdiff
path: root/texmf-dist/tex/latex/aeb-pro/anime_support.def
diff options
context:
space:
mode:
Diffstat (limited to 'texmf-dist/tex/latex/aeb-pro/anime_support.def')
-rw-r--r--texmf-dist/tex/latex/aeb-pro/anime_support.def986
1 files changed, 493 insertions, 493 deletions
diff --git a/texmf-dist/tex/latex/aeb-pro/anime_support.def b/texmf-dist/tex/latex/aeb-pro/anime_support.def
index 2a2646f0..c22d74ba 100644
--- a/texmf-dist/tex/latex/aeb-pro/anime_support.def
+++ b/texmf-dist/tex/latex/aeb-pro/anime_support.def
@@ -1,493 +1,493 @@
-%%
-%% This is file `anime_support.def',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% aeb_pro.dtx (with options: `copyright,animecommon')
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% aeb_pro.sty package, %%
-%% Copyright (C) 2006--2018 D. P. Story %%
-%% dpstory@acrotex.net %%
-%% %%
-%% This program can redistributed and/or modified under %%
-%% the terms of the LaTeX Project Public License %%
-%% Distributed from CTAN archives in directory %%
-%% macros/latex/base/lppl.txt; either version 1.2 of %%
-%% the License, or (at your option) any later version. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\newcommand{\placeAnimeCtrlBtnFaces}[3][\pathToBtnCtrlIcons]{\begingroup
- \toks@={\aep@I{\aep@setAFirst}{animeFirst}%
- \aep@I{\aep@setASB}{animeSB}%
- \aep@I{\aep@setAPB}{animePB}%
- \aep@I{\aep@setAPaus}{animePause}%
- \aep@I{\aep@setAPF}{animePF}%
- \aep@I{\aep@setASF}{animeSF}%
- \aep@I{\aep@setALast}{animeLast}%
- \aep@I{\aep@setAPlus}{animePlus}%
- \aep@I{\aep@setAMinus}{animeMinus}}%
- \def\aep@I##1##2{\let##1\@empty}\the\toks@
- \def\aep@I##1##2{\edef##1{##1,\aep@thisAnime4BtnCtrl.##2}}%
- \@for\aep@thisAnime:=#3\do{\the\toks@}%
- \def\aep@I##1##2{\edef##1{\expandafter\@gobble##1}}\the\toks@
- \ifx\pathToBtnCtrlIcons\@empty
- \let\@pathsep\@empty\else\def\@pathsep{/}\fi
- \declareMultiImages{%
- {path=#1\@pathsep#2,page=0,placement={\aep@setAFirst}}
- {path=#1\@pathsep#2,page=2,placement={\aep@setASB}}
- {path=#1\@pathsep#2,page=4,placement={\aep@setAPB}}
- {path=#1\@pathsep#2,page=6,placement={\aep@setAPaus}}
- {path=#1\@pathsep#2,page=5,placement={\aep@setAPF}}
- {path=#1\@pathsep#2,page=3,placement={\aep@setASF}}
- {path=#1\@pathsep#2,page=1,placement={\aep@setALast}}
- {path=#1\@pathsep#2,page=7,placement={\aep@setAPlus}}
- {path=#1\@pathsep#2,page=8,placement={\aep@setAMinus}}
- }%
- \endgroup
-}
-\@onlypreamble\placeAnimeCtrlBtnFaces
-\newcommand{\animeSetup}[1]{%
- \let\animeSetupPresets\@empty
- \edef\@tempExp{\noexpand\setkeys{btnAnime}{#1}}\@tempExp
- \ifx\btnAnimeCtrlBdryColor\@empty\else
- \edef\@tmpExp{\noexpand\g@addto@macro%
- \noexpand\animeSetupPresets{%
- \noexpand\BC{\btnAnimeCtrlBdryColor}}}\@tmpExp
- \edef\@tmpExp{\noexpand\g@addto@macro%
- \noexpand\animeSetupPresets{%
- \noexpand\W{\btnAnimeCtrlBdryWidth}}}\@tmpExp\fi
- \edef\@btnanimerowsep{\btnanimerowsep}% dps10
- \setlength{\@tempdima}{%
- (\btnAnimeCtrlW+2bp)*\numWidgetsFirstRow+%
- (\btnanimebtnsep*(\numWidgetsFirstRow-1))}%
- \addtolength{\@tempdima}{\addSpaceBtwnPMBtns}%
- \edef\widthFirstRow{\the\@tempdima}%
-}
-\newcommand{\insertCtrlButtons}[1][c]{%
- \parbox[#1][\totalheight+2bp]{\widthFirstRow}{%
- \offinterlineskip\centering\aep@btn@anime@controls}}
-\newcommand{\setspaceBtwnPMBtns}[1]{{%
- \settowidth{\@tempdima}{#1\kern2bp}%
- \xdef\tmp@spaceBtwnPMBtns{\the\@tempdima}}%
- \edef\@spaceBtwnPMBtns{\tmp@spaceBtwnPMBtns}}
-\setspaceBtwnPMBtns{\space}
-\def\addSpaceBtwnPMBtns{\ifKV@btnAnime@usetworows0bp\else
- \ifKV@btnAnime@nospeedcontrol0bp\else\@spaceBtwnPMBtns\fi\fi}
-\define@choicekey+{btnAnime}{type}[\val\nr]%
- {loop,palindrome,stopatboundary}[stopatboundary]{%
- \edef\aebp@btnAnime@type{\nr}}{}
-\define@key{btnAnime}{fieldName}[]{\gdef\animeBtnFieldName{#1}}
-\define@key{btnAnime}{ocgAnimeName}[]{\gdef\animeBtnFieldName{#1}}
-\define@key{btnAnime}{iconName}[]{\gdef\animeBtnBaseName{#1}}
-\define@key{btnAnime}{speed}[200]{\gdef\animeBtnSpeed{#1}}
-\define@key{btnAnime}{nFrames}[]{\gdef\nFrames{#1}}
-\define@boolkey{btnAnime}{autorun}[true]{}
-\define@boolkey{btnAnime}{autopause}[true]{}
-\define@choicekey+{btnAnime}{autoplayevent}[\val\nr]%
- {pageopen,pagevisible}[pageopen]{\ifcase\nr\relax
- \def\aebp@autoplayevent{\AAPageOpen}\or
- \def\aebp@autoplayevent{\AAPageVisible}\fi}{}%
-\def\aebp@autoplayevent{\AAPageOpen}
-\define@choicekey+{btnAnime}{autopauseevent}[\val\nr]%
- {pageclose,pageinvisible}[pageclose]{\ifcase\nr\relax
- \def\aebp@autopauseevent{\AAPageClose}\or
- \def\aebp@autopauseevent{\AAPageInvisible}\fi}{}%
-\def\aebp@autopauseevent{\AAPageClose}
-\define@choicekey+{btnAnime}{poster}[\val\nr]%
- {first,last,none}[first]{\edef\aebp@btnAnime@poster{\nr}}{}
-\define@key{btnAnime}{ctrlwidth}[18bp]{\def\btnAnimeCtrlW{#1}}
-\define@key{btnAnime}{ctrlheight}[9bp]{\def\btnAnimeCtrlH{#1}}
-\define@choicekey{btnAnime}{ctrlbdrywidth}[\val\nr]{none,%
- thin,medium,thick}[thin]{\edef\btnAnimeCtrlBdryWidth{\nr}}
-\define@key{btnAnime}{ctrlbdrycolor}[]{\def\ap@argi{#1}%
- \ifx\ap@argi\@empty\let\btnAnimeCtrlBdryColor\@empty\else
- \HyColor@IfXcolor{\HyColor@XZeroOneThreeFour{#1}
- {\btnAnimeCtrlBdryColor}{}{}}
- {\edef\btnAnimeCtrlBdryColor{#1}}\fi
-} % PDF color
-\let\animeSetupPresets\@empty
-\newcommand{\@ctrlsbtnsep}{\cgBdry[\btnanimebtnsep]} % dps10
-\newcommand{\btnanimebtnsep}{1bp}
-\newcommand{\vspacectrlsep}{3bp}
-\newcommand{\aep@vspacectrlsep}{\vspacectrlsep}
-\newcommand{\btnanimerowsep}{1bp}
-\newcommand{\btnAnimeSkini}{\ifKV@btnAnime@usetworows
- \makebox[\linewidth][c]{%
- \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimeStepBack
- \@ctrlsbtnsep\btnAnimePlayBack
- \@ctrlsbtnsep\btnAnimePause
- \@ctrlsbtnsep\btnAnimePlayForward
- \@ctrlsbtnsep\btnAnimeStepForward
- \@ctrlsbtnsep\btnAnimeGoToLast}\ifKV@btnAnime@nospeedcontrol\else
- \vcgBdry[\@btnanimerowsep]\makebox[\linewidth][c]{%
- \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus}\fi\else
- \makebox[\linewidth][s]{\hss
- \btnAnimeGoToFirst
- \@ctrlsbtnsep\btnAnimeStepBack
- \@ctrlsbtnsep\btnAnimePlayBack
- \@ctrlsbtnsep\btnAnimePause
- \@ctrlsbtnsep\btnAnimePlayForward
- \@ctrlsbtnsep\btnAnimeStepForward
- \@ctrlsbtnsep\btnAnimeGoToLast
- \ifKV@btnAnime@nospeedcontrol\else
- \kern\@spaceBtwnPMBtns\btnAnimePlus
- \@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
-\newcommand{\btnAnimeSkinii}{\ifKV@btnAnime@usetworows
- \makebox[\linewidth][c]{%
- \btnAnimeGoToFirst
- \@ctrlsbtnsep\btnAnimePlayBack
- \@ctrlsbtnsep\btnAnimePause
- \@ctrlsbtnsep\btnAnimePlayForward
- \@ctrlsbtnsep\btnAnimeGoToLast}%
- \ifKV@btnAnime@nospeedcontrol\else\vcgBdry[\@btnanimerowsep]%
- \makebox[\linewidth][c]{\btnAnimePlus\@ctrlsbtnsep
- \btnAnimeMinus}\fi\else\makebox[\linewidth][s]{\hss
- \btnAnimeGoToFirst\@ctrlsbtnsep
- \btnAnimePlayBack\@ctrlsbtnsep\btnAnimePause%
- \@ctrlsbtnsep\btnAnimePlayForward\@ctrlsbtnsep
- \btnAnimeGoToLast\ifKV@btnAnime@nospeedcontrol\else
- \kern\@spaceBtwnPMBtns\btnAnimePlus
- \@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
-\newcommand{\btnAnimeSkiniii}{\ifKV@btnAnime@usetworows
- \makebox[\linewidth][c]{%
- \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimePause
- \@ctrlsbtnsep\btnAnimePlayForward}%
- \ifKV@btnAnime@nospeedcontrol\else
- \vcgBdry[\@btnanimerowsep]\makebox[\linewidth][c]{%
- \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus}\fi\else
- \makebox[\linewidth][s]{\hss
- \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimePause
- \@ctrlsbtnsep\btnAnimePlayForward
- \ifKV@btnAnime@nospeedcontrol\else\kern\@spaceBtwnPMBtns
- \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
-\newcommand{\btnAnimeSkiniv}{%
- \makebox[\linewidth][c]{%
- \btnAnimeGoToFirst
- \@ctrlsbtnsep\btnAnimeStepBack
- \@ctrlsbtnsep\btnAnimeStepForward
- \@ctrlsbtnsep\btnAnimeGoToLast}}
-\newcommand{\btnAnimeSkinv}{\PackageWarning{aeb_pro}
- {skin5 is undefined.\MessageBreak You may customize
- by defining skin5;\MessageBreak meanwhile, using default,
- skin1}\btnAnimeSkini}
-\newcommand{\btnAnimeSkinvi}{\PackageWarning{aeb_pro}
- {skin6 is undefined.\MessageBreak You may customize
- by defining skin6;\MessageBreak meanwhile, using default,
- skin1}\btnAnimeSkini}
-\newcommand{\aepnumWidgetsFirstRow}[2]{\def\numWidgetsFirstRow{%
- \ifKV@btnAnime@nospeedcontrol#1\else
- \ifKV@btnAnime@usetworows#1\else#2\fi\fi}}
-\newcommand{\numWidgetsFirstRowV}{\aepnumWidgetsFirstRow{7}{9}}
-\newcommand{\numWidgetsFirstRowVI}{\aepnumWidgetsFirstRow{7}{9}}
-\define@choicekey+{btnAnime}{controls}[\val\nr]%
- {none,skin1,skin2,skin3,skin4,skin5,skin6}[skin1]{%
- \ifcase\nr\relax
- \let\aep@btn@anime@controls\@empty
- \def\widthFirstRow{0pt}\or
- \def\aep@btn@anime@controls{\btnAnimeSkini}%
- \aepnumWidgetsFirstRow{7}{9}\or
- \def\aep@btn@anime@controls{\btnAnimeSkinii}%
- \aepnumWidgetsFirstRow{5}{7}\or
- \def\aep@btn@anime@controls{\btnAnimeSkiniii}%
- \aepnumWidgetsFirstRow{3}{5}\or
- \def\aep@btn@anime@controls{\btnAnimeSkiniv}%
- \aepnumWidgetsFirstRow{4}{4}\or
- \def\aep@btn@anime@controls{\btnAnimeSkinv}%
- \numWidgetsFirstRowV\or
- \def\aep@btn@anime@controls{\btnAnimeSkinvi}%
- \numWidgetsFirstRowVI\fi
- }{}
-\define@boolkey{btnAnime}{usetworows}[true]{}
-\define@boolkey{btnAnime}{nospeedcontrol}[true]{}
-\setkeys{btnAnime}{fieldName,iconName,speed,nFrames,type,poster,
- controls,usetworows=false,nospeedcontrol=false,ctrlwidth,ctrlheight,
- ctrlbdrywidth,ctrlbdrycolor}
-\newcommand{\btnAnimePresets}[1]{\def\aeb@btnAnimePresets{#1}}
-\def\aeb@btnAnimePresets{}
-\newcommand{\ctrlButtonsWrapper}[1]{#1}
-\newcommand{\btnAnimeCtrlPresets}[1]{\def\aeb@btnAnimeCtrlPresets{#1}}
-\def\aeb@btnAnimeCtrlPresets{}
-\newcommand{\btnAnimeGoToFirst}{%
- \pushButton[\TU{Go to first frame}\S{S}\BC{}
- \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimeFirstAction}}]%
- {\animeBtnFieldName4BtnCtrl.animeFirst}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}%
-\newcommand{\btnAnimeStepBack}{%
- \pushButton[\TU{Step Back}\S{S}\BC{}
- \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimeSBAction}}]%
- {\animeBtnFieldName4BtnCtrl.animeSB}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimePlayBack}{%
- \pushButton[\TU{Play Backwards}\S{S}\BC{}
- \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimePBAction}}]%
- {\animeBtnFieldName4BtnCtrl.animePB}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimePause}{%
- \pushButton[\TU{Pause}\S{S}\BC{}
- \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimePauseAction}}]%
- {\animeBtnFieldName4BtnCtrl.animePause}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimePlayForward}{%
- \pushButton[\TU{Play Forwards}\S{S}\BC{}
- \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimePFAction}}]%
- {\animeBtnFieldName4BtnCtrl.animePF}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimeStepForward}{%
- \pushButton[\TU{Step Forward}\S{S}\BC{}
- \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimeSFAction}}]%
- {\animeBtnFieldName4BtnCtrl.animeSF}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimeGoToLast}{%
- \pushButton[\TU{Go to last frame}\S{S}\BC{}
- \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimeLastAction}}]%
- {\animeBtnFieldName4BtnCtrl.animeLast}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimePlus}{%
- \pushButton[\TU{Increase speed\r Shift-click to restore
- default speed}%\textFont{HeBo}\CA{+}
- \S{S}\BC{}\FB{false}\I{null}\TP{1}
- \presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimePlusAction}}]%
- {\animeBtnFieldName4BtnCtrl.animePlus}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimeMinus}{%
- \pushButton[\TU{Decrease speed\r Shift-click to restore
- default speed}%\textFont{HeBo}\uCA{FEFF2212}
- \S{S}\BC{}\FB{false}\I{null}\TP{1}
- \presets{\aeb@btnAnimeCtrlPresets}
- \presets{\animeSetupPresets}\A{\JS{\btnAnimeMinusAction}}]%
- {\animeBtnFieldName4BtnCtrl.animeMinus}%
- {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
-\newcommand{\btnAnimeFirstAction}{%
-if (typeof \animeBtnFieldName\space == "object")\r\t
- btnAnimeFirst(\animeBtnFieldName);
-}
-\newcommand{\btnAnimeSBAction}{%
- if ( typeof \animeBtnFieldName\space=="undefined")\r\t
- var \animeBtnFieldName= new Object();\r
- btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
- "\animeBtnBaseName",\animeBtnSpeed,\nFrames,false,%
- \aebp@btnAnime@type,true);
-}
-\newcommand{\btnAnimePBAction}{%
- if ( typeof \animeBtnFieldName\space=="undefined")\r\t
- var \animeBtnFieldName= new Object();\r
- btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
- "\animeBtnBaseName",\animeBtnSpeed,\nFrames,false,%
- \aebp@btnAnime@type,false);
-}
-\newcommand{\btnAnimePauseAction}{%
- if ((typeof \animeBtnFieldName\space == "object")&&%
- \animeBtnFieldName.animeStart)\r\t
- btnAnimePause(\animeBtnFieldName);
-}
-\newcommand{\btnAnimePFAction}{%
- if ( typeof \animeBtnFieldName\space=="undefined")\r\t
- var \animeBtnFieldName= new Object();\r
- btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
- "\animeBtnBaseName",\animeBtnSpeed,\nFrames,true,%
- \aebp@btnAnime@type,false);
-}
-\newcommand{\btnAnimeSFAction}{%
- if ( typeof \animeBtnFieldName\space=="undefined")\r\t
- var \animeBtnFieldName= new Object();\r
- btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
- "\animeBtnBaseName",\animeBtnSpeed,\nFrames,true,%
- \aebp@btnAnime@type,true);
-}
-\newcommand{\btnAnimeLastAction}{%
- if (typeof \animeBtnFieldName\space == "object")\r\t
- btnAnimeLast(\animeBtnFieldName);
-}
-\newcommand{\btnAnimePlusAction}{%
- if (typeof \animeBtnFieldName\space == "object")\r\t
- btnAnimePlus(\animeBtnFieldName,\animeBtnSpeed);
-}
-\newcommand{\btnAnimeMinusAction}{%
- if (typeof \animeBtnFieldName\space == "object")\r\t
- btnAnimeMinus(\animeBtnFieldName,\animeBtnSpeed);
-}
-\begin{insDLJS}[_loadBtnAnimeCtrls]{btnanime}
- {AeB Pro: Button and Ocg Anime Controls}
-var _loadBtnAnimeCtrls=true;
-var activeAnimes=new Array();
-function btnAnimePlay(oAnime,fieldName,baseFrameName,%
-nSpeed,nFrames,bForward,type,bStep) {
- // ocgAnime is characterized by baseFrameName=""
- if ( oAnime.animeStart && !oAnime.animePause ) return;
- var callingFieldName=event.target.name;
- var re=/\.anime(PB|PF)/;
- var doRebuild=( event.shift && re.test(callingFieldName) );
- if ( (arguments.length>1) && %
-( (typeof activeAnimes[fieldName] == "undefined")|| doRebuild) ) {
- activeAnimes[fieldName]=oAnime;
- oAnime.isOcgAnime=(baseFrameName==""); // ocg change
- oAnime.fieldName=fieldName;
- oAnime.baseFrameName=baseFrameName;
- oAnime.numSecs=nSpeed;
- oAnime.nFrames=nFrames;
- oAnime.type=type;
- oAnime.bStep=bStep;
- oAnime.aMyIcons = new Array();
- oAnime.count = 0;
- if ( !oAnime.isOcgAnime ) {// ocg change
- for ( var i=0; i < nFrames; i++) {
- oAnime.aMyIcons[i] = this.getField(fieldName+"."+i);
- oAnime.aMyIcons[i].display=(i==0)?display.visible:%
-display.hidden;
- }
- }
- }
- if (arguments.length>1) {
- oAnime.bForward=bForward;
- oAnime.bStep=bStep;
- }
- if (oAnime.bStep) {
- this.delay=true
- if ( oAnime.isOcgAnime ) // ocg change
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(oAnime.count+1)).state=false; // ocg
- else
- oAnime.aMyIcons[oAnime.count].display=display.hidden;
- var currCount=oAnime.count;
- if (oAnime.bForward) {
- oAnime.count++;
- if (oAnime.count==oAnime.nFrames) // hit upper boundary
- oAnime.count=(oAnime.type==0)?0:currCount;
- } else {
- oAnime.count--;
- if (oAnime.count<0)
- oAnime.count=(oAnime.type==0)?(oAnime.nFrames-1):0;
- }
- if ( oAnime.isOcgAnime ) // ocg change
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(oAnime.count+1)).state=true; // ocg
- else
- oAnime.aMyIcons[oAnime.count].display=display.visible;
- this.delay=false;
- } else {
- var args="\""+oAnime.fieldName+"\","+oAnime.type;
- oAnime.run = app.setInterval(%
-"btnAnimeNewFrame("+args+")",oAnime.numSecs);
- oAnime.animeStart=true;
- oAnime.animePause=false;
- }
-}
-function btnAnimeFirst(oAnime)
-{
- try { app.clearInterval(oAnime.run);} catch(e){}
- oAnime.animeStart=false;
- oAnime.animePause=false;
- if ( oAnime.isOcgAnime )
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(oAnime.count+1)).state=false; // ocg
- else
- oAnime.aMyIcons[oAnime.count].display=display.hidden;
- oAnime.count=0;
- if ( oAnime.isOcgAnime )
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(oAnime.count+1)).state=true; // ocg
- else
- oAnime.aMyIcons[0].display=display.visible;
-}
-function btnAnimeLast(oAnime)
-{
- try { app.clearInterval(oAnime.run);} catch(e){}
- oAnime.animeStart=false;
- oAnime.animePause=false;
- var l = oAnime.nFrames-1;
- if ( oAnime.isOcgAnime )
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(oAnime.count+1)).state=false; // ocg
- else
- oAnime.aMyIcons[oAnime.count].display=display.hidden;
- oAnime.count=l;
- if ( oAnime.isOcgAnime )
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(l+1)).state=true; // ocg
- else
- oAnime.aMyIcons[l].display=display.visible;
-}
-function btnAnimePause(oAnime)
-{
- try { app.clearInterval(oAnime.run);} catch(e){}
- oAnime.animePause=true;
-}
-function btnAnimePlus(oAnime,nDefSpeed){
- var isPlaying=(oAnime.animeStart&&!oAnime.animePause);
- if (isPlaying) btnAnimePause(oAnime);
- if ( event.shift ) oAnime.numSecs=nDefSpeed;
- else oAnime.numSecs -= 50;
- if (oAnime.numSecs<10) oAnime.numSecs=10
- if (isPlaying) btnAnimePlay(oAnime);
-}
-function btnAnimeMinus(oAnime,nDefSpeed){
- var isPlaying=(oAnime.animeStart&&!oAnime.animePause);
- if (isPlaying) btnAnimePause(oAnime);
- if ( event.shift ) oAnime.numSecs=nDefSpeed;
- else oAnime.numSecs += 50;
- if (isPlaying) btnAnimePlay(oAnime);
-}
-function btnAnimeNewFrame(fieldName, type)
-{
- var oAnime=activeAnimes[fieldName];
- this.delay=true
- if ( oAnime.isOcgAnime ) // ocg change
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(oAnime.count+1)).state=false;
- else
- oAnime.aMyIcons[oAnime.count].display=display.hidden;
- var currCount=oAnime.count;
- var bBdaryMet=false;
- if (oAnime.bForward) {
- oAnime.count++;
- if (oAnime.count==oAnime.nFrames) {
- if(type==0) oAnime.count \%= oAnime.nFrames;
- else if(type==1) {
- oAnime.count=currCount;
- oAnime.count--;
- oAnime.bForward=false;
- } else {
- bBdaryMet=true;
- oAnime.count=currCount;
- }
- }
- } else {
- oAnime.count--;
- if (oAnime.count<0) {
- if(type==0) oAnime.count=(oAnime.nFrames-1);
- else if(type==1) {
- oAnime.count=currCount;
- oAnime.count++;
- oAnime.bForward=true;
- } else { // stop
- bBdaryMet=true;
- oAnime.count=currCount;
- }
- }
- }
- if ( oAnime.isOcgAnime) // ocg change
- getxBld("anime!!"+oAnime.fieldName+"\#"%
-+(oAnime.count+1)).state=true;
- else
- oAnime.aMyIcons[oAnime.count].display=display.visible;
- this.delay=false;
- if ( type==2 && bBdaryMet ) {
- try { app.clearInterval(oAnime.run);} catch(e){}
- // try { app.clearTimeOut(timeout);} catch(e){}
- oAnime.animeStart=false;
- oAnime.animePause=false;
- }
-}
-\end{insDLJS}
-\endinput
-%%
-%% End of file `anime_support.def'.
+%%
+%% This is file `anime_support.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb_pro.dtx (with options: `copyright,animecommon')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb_pro.sty package, %%
+%% Copyright (C) 2006--2018 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand{\placeAnimeCtrlBtnFaces}[3][\pathToBtnCtrlIcons]{\begingroup
+ \toks@={\aep@I{\aep@setAFirst}{animeFirst}%
+ \aep@I{\aep@setASB}{animeSB}%
+ \aep@I{\aep@setAPB}{animePB}%
+ \aep@I{\aep@setAPaus}{animePause}%
+ \aep@I{\aep@setAPF}{animePF}%
+ \aep@I{\aep@setASF}{animeSF}%
+ \aep@I{\aep@setALast}{animeLast}%
+ \aep@I{\aep@setAPlus}{animePlus}%
+ \aep@I{\aep@setAMinus}{animeMinus}}%
+ \def\aep@I##1##2{\let##1\@empty}\the\toks@
+ \def\aep@I##1##2{\edef##1{##1,\aep@thisAnime4BtnCtrl.##2}}%
+ \@for\aep@thisAnime:=#3\do{\the\toks@}%
+ \def\aep@I##1##2{\edef##1{\expandafter\@gobble##1}}\the\toks@
+ \ifx\pathToBtnCtrlIcons\@empty
+ \let\@pathsep\@empty\else\def\@pathsep{/}\fi
+ \declareMultiImages{%
+ {path=#1\@pathsep#2,page=0,placement={\aep@setAFirst}}
+ {path=#1\@pathsep#2,page=2,placement={\aep@setASB}}
+ {path=#1\@pathsep#2,page=4,placement={\aep@setAPB}}
+ {path=#1\@pathsep#2,page=6,placement={\aep@setAPaus}}
+ {path=#1\@pathsep#2,page=5,placement={\aep@setAPF}}
+ {path=#1\@pathsep#2,page=3,placement={\aep@setASF}}
+ {path=#1\@pathsep#2,page=1,placement={\aep@setALast}}
+ {path=#1\@pathsep#2,page=7,placement={\aep@setAPlus}}
+ {path=#1\@pathsep#2,page=8,placement={\aep@setAMinus}}
+ }%
+ \endgroup
+}
+\@onlypreamble\placeAnimeCtrlBtnFaces
+\newcommand{\animeSetup}[1]{%
+ \let\animeSetupPresets\@empty
+ \edef\@tempExp{\noexpand\setkeys{btnAnime}{#1}}\@tempExp
+ \ifx\btnAnimeCtrlBdryColor\@empty\else
+ \edef\@tmpExp{\noexpand\g@addto@macro%
+ \noexpand\animeSetupPresets{%
+ \noexpand\BC{\btnAnimeCtrlBdryColor}}}\@tmpExp
+ \edef\@tmpExp{\noexpand\g@addto@macro%
+ \noexpand\animeSetupPresets{%
+ \noexpand\W{\btnAnimeCtrlBdryWidth}}}\@tmpExp\fi
+ \edef\@btnanimerowsep{\btnanimerowsep}% dps10
+ \setlength{\@tempdima}{%
+ (\btnAnimeCtrlW+2bp)*\numWidgetsFirstRow+%
+ (\btnanimebtnsep*(\numWidgetsFirstRow-1))}%
+ \addtolength{\@tempdima}{\addSpaceBtwnPMBtns}%
+ \edef\widthFirstRow{\the\@tempdima}%
+}
+\newcommand{\insertCtrlButtons}[1][c]{%
+ \parbox[#1][\totalheight+2bp]{\widthFirstRow}{%
+ \offinterlineskip\centering\aep@btn@anime@controls}}
+\newcommand{\setspaceBtwnPMBtns}[1]{{%
+ \settowidth{\@tempdima}{#1\kern2bp}%
+ \xdef\tmp@spaceBtwnPMBtns{\the\@tempdima}}%
+ \edef\@spaceBtwnPMBtns{\tmp@spaceBtwnPMBtns}}
+\setspaceBtwnPMBtns{\space}
+\def\addSpaceBtwnPMBtns{\ifKV@btnAnime@usetworows0bp\else
+ \ifKV@btnAnime@nospeedcontrol0bp\else\@spaceBtwnPMBtns\fi\fi}
+\define@choicekey+{btnAnime}{type}[\val\nr]%
+ {loop,palindrome,stopatboundary}[stopatboundary]{%
+ \edef\aebp@btnAnime@type{\nr}}{}
+\define@key{btnAnime}{fieldName}[]{\gdef\animeBtnFieldName{#1}}
+\define@key{btnAnime}{ocgAnimeName}[]{\gdef\animeBtnFieldName{#1}}
+\define@key{btnAnime}{iconName}[]{\gdef\animeBtnBaseName{#1}}
+\define@key{btnAnime}{speed}[200]{\gdef\animeBtnSpeed{#1}}
+\define@key{btnAnime}{nFrames}[]{\gdef\nFrames{#1}}
+\define@boolkey{btnAnime}{autorun}[true]{}
+\define@boolkey{btnAnime}{autopause}[true]{}
+\define@choicekey+{btnAnime}{autoplayevent}[\val\nr]%
+ {pageopen,pagevisible}[pageopen]{\ifcase\nr\relax
+ \def\aebp@autoplayevent{\AAPageOpen}\or
+ \def\aebp@autoplayevent{\AAPageVisible}\fi}{}%
+\def\aebp@autoplayevent{\AAPageOpen}
+\define@choicekey+{btnAnime}{autopauseevent}[\val\nr]%
+ {pageclose,pageinvisible}[pageclose]{\ifcase\nr\relax
+ \def\aebp@autopauseevent{\AAPageClose}\or
+ \def\aebp@autopauseevent{\AAPageInvisible}\fi}{}%
+\def\aebp@autopauseevent{\AAPageClose}
+\define@choicekey+{btnAnime}{poster}[\val\nr]%
+ {first,last,none}[first]{\edef\aebp@btnAnime@poster{\nr}}{}
+\define@key{btnAnime}{ctrlwidth}[18bp]{\def\btnAnimeCtrlW{#1}}
+\define@key{btnAnime}{ctrlheight}[9bp]{\def\btnAnimeCtrlH{#1}}
+\define@choicekey{btnAnime}{ctrlbdrywidth}[\val\nr]{none,%
+ thin,medium,thick}[thin]{\edef\btnAnimeCtrlBdryWidth{\nr}}
+\define@key{btnAnime}{ctrlbdrycolor}[]{\def\ap@argi{#1}%
+ \ifx\ap@argi\@empty\let\btnAnimeCtrlBdryColor\@empty\else
+ \HyColor@IfXcolor{\HyColor@XZeroOneThreeFour{#1}
+ {\btnAnimeCtrlBdryColor}{}{}}
+ {\edef\btnAnimeCtrlBdryColor{#1}}\fi
+} % PDF color
+\let\animeSetupPresets\@empty
+\newcommand{\@ctrlsbtnsep}{\cgBdry[\btnanimebtnsep]} % dps10
+\newcommand{\btnanimebtnsep}{1bp}
+\newcommand{\vspacectrlsep}{3bp}
+\newcommand{\aep@vspacectrlsep}{\vspacectrlsep}
+\newcommand{\btnanimerowsep}{1bp}
+\newcommand{\btnAnimeSkini}{\ifKV@btnAnime@usetworows
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimeStepBack
+ \@ctrlsbtnsep\btnAnimePlayBack
+ \@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \@ctrlsbtnsep\btnAnimeStepForward
+ \@ctrlsbtnsep\btnAnimeGoToLast}\ifKV@btnAnime@nospeedcontrol\else
+ \vcgBdry[\@btnanimerowsep]\makebox[\linewidth][c]{%
+ \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus}\fi\else
+ \makebox[\linewidth][s]{\hss
+ \btnAnimeGoToFirst
+ \@ctrlsbtnsep\btnAnimeStepBack
+ \@ctrlsbtnsep\btnAnimePlayBack
+ \@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \@ctrlsbtnsep\btnAnimeStepForward
+ \@ctrlsbtnsep\btnAnimeGoToLast
+ \ifKV@btnAnime@nospeedcontrol\else
+ \kern\@spaceBtwnPMBtns\btnAnimePlus
+ \@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
+\newcommand{\btnAnimeSkinii}{\ifKV@btnAnime@usetworows
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst
+ \@ctrlsbtnsep\btnAnimePlayBack
+ \@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \@ctrlsbtnsep\btnAnimeGoToLast}%
+ \ifKV@btnAnime@nospeedcontrol\else\vcgBdry[\@btnanimerowsep]%
+ \makebox[\linewidth][c]{\btnAnimePlus\@ctrlsbtnsep
+ \btnAnimeMinus}\fi\else\makebox[\linewidth][s]{\hss
+ \btnAnimeGoToFirst\@ctrlsbtnsep
+ \btnAnimePlayBack\@ctrlsbtnsep\btnAnimePause%
+ \@ctrlsbtnsep\btnAnimePlayForward\@ctrlsbtnsep
+ \btnAnimeGoToLast\ifKV@btnAnime@nospeedcontrol\else
+ \kern\@spaceBtwnPMBtns\btnAnimePlus
+ \@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
+\newcommand{\btnAnimeSkiniii}{\ifKV@btnAnime@usetworows
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward}%
+ \ifKV@btnAnime@nospeedcontrol\else
+ \vcgBdry[\@btnanimerowsep]\makebox[\linewidth][c]{%
+ \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus}\fi\else
+ \makebox[\linewidth][s]{\hss
+ \btnAnimeGoToFirst\@ctrlsbtnsep\btnAnimePause
+ \@ctrlsbtnsep\btnAnimePlayForward
+ \ifKV@btnAnime@nospeedcontrol\else\kern\@spaceBtwnPMBtns
+ \btnAnimePlus\@ctrlsbtnsep\btnAnimeMinus\fi\hss}\fi}
+\newcommand{\btnAnimeSkiniv}{%
+ \makebox[\linewidth][c]{%
+ \btnAnimeGoToFirst
+ \@ctrlsbtnsep\btnAnimeStepBack
+ \@ctrlsbtnsep\btnAnimeStepForward
+ \@ctrlsbtnsep\btnAnimeGoToLast}}
+\newcommand{\btnAnimeSkinv}{\PackageWarning{aeb_pro}
+ {skin5 is undefined.\MessageBreak You may customize
+ by defining skin5;\MessageBreak meanwhile, using default,
+ skin1}\btnAnimeSkini}
+\newcommand{\btnAnimeSkinvi}{\PackageWarning{aeb_pro}
+ {skin6 is undefined.\MessageBreak You may customize
+ by defining skin6;\MessageBreak meanwhile, using default,
+ skin1}\btnAnimeSkini}
+\newcommand{\aepnumWidgetsFirstRow}[2]{\def\numWidgetsFirstRow{%
+ \ifKV@btnAnime@nospeedcontrol#1\else
+ \ifKV@btnAnime@usetworows#1\else#2\fi\fi}}
+\newcommand{\numWidgetsFirstRowV}{\aepnumWidgetsFirstRow{7}{9}}
+\newcommand{\numWidgetsFirstRowVI}{\aepnumWidgetsFirstRow{7}{9}}
+\define@choicekey+{btnAnime}{controls}[\val\nr]%
+ {none,skin1,skin2,skin3,skin4,skin5,skin6}[skin1]{%
+ \ifcase\nr\relax
+ \let\aep@btn@anime@controls\@empty
+ \def\widthFirstRow{0pt}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkini}%
+ \aepnumWidgetsFirstRow{7}{9}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkinii}%
+ \aepnumWidgetsFirstRow{5}{7}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkiniii}%
+ \aepnumWidgetsFirstRow{3}{5}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkiniv}%
+ \aepnumWidgetsFirstRow{4}{4}\or
+ \def\aep@btn@anime@controls{\btnAnimeSkinv}%
+ \numWidgetsFirstRowV\or
+ \def\aep@btn@anime@controls{\btnAnimeSkinvi}%
+ \numWidgetsFirstRowVI\fi
+ }{}
+\define@boolkey{btnAnime}{usetworows}[true]{}
+\define@boolkey{btnAnime}{nospeedcontrol}[true]{}
+\setkeys{btnAnime}{fieldName,iconName,speed,nFrames,type,poster,
+ controls,usetworows=false,nospeedcontrol=false,ctrlwidth,ctrlheight,
+ ctrlbdrywidth,ctrlbdrycolor}
+\newcommand{\btnAnimePresets}[1]{\def\aeb@btnAnimePresets{#1}}
+\def\aeb@btnAnimePresets{}
+\newcommand{\ctrlButtonsWrapper}[1]{#1}
+\newcommand{\btnAnimeCtrlPresets}[1]{\def\aeb@btnAnimeCtrlPresets{#1}}
+\def\aeb@btnAnimeCtrlPresets{}
+\newcommand{\btnAnimeGoToFirst}{%
+ \pushButton[\TU{Go to first frame}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeFirstAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeFirst}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}%
+\newcommand{\btnAnimeStepBack}{%
+ \pushButton[\TU{Step Back}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeSBAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeSB}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePlayBack}{%
+ \pushButton[\TU{Play Backwards}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePBAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePB}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePause}{%
+ \pushButton[\TU{Pause}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePauseAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePause}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePlayForward}{%
+ \pushButton[\TU{Play Forwards}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePFAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePF}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeStepForward}{%
+ \pushButton[\TU{Step Forward}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeSFAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeSF}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeGoToLast}{%
+ \pushButton[\TU{Go to last frame}\S{S}\BC{}
+ \FB{false}\I{null}\TP{1}\presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeLastAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeLast}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimePlus}{%
+ \pushButton[\TU{Increase speed\r Shift-click to restore
+ default speed}%\textFont{HeBo}\CA{+}
+ \S{S}\BC{}\FB{false}\I{null}\TP{1}
+ \presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimePlusAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animePlus}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeMinus}{%
+ \pushButton[\TU{Decrease speed\r Shift-click to restore
+ default speed}%\textFont{HeBo}\uCA{FEFF2212}
+ \S{S}\BC{}\FB{false}\I{null}\TP{1}
+ \presets{\aeb@btnAnimeCtrlPresets}
+ \presets{\animeSetupPresets}\A{\JS{\btnAnimeMinusAction}}]%
+ {\animeBtnFieldName4BtnCtrl.animeMinus}%
+ {\btnAnimeCtrlW}{\btnAnimeCtrlH}}
+\newcommand{\btnAnimeFirstAction}{%
+if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimeFirst(\animeBtnFieldName);
+}
+\newcommand{\btnAnimeSBAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,false,%
+ \aebp@btnAnime@type,true);
+}
+\newcommand{\btnAnimePBAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,false,%
+ \aebp@btnAnime@type,false);
+}
+\newcommand{\btnAnimePauseAction}{%
+ if ((typeof \animeBtnFieldName\space == "object")&&%
+ \animeBtnFieldName.animeStart)\r\t
+ btnAnimePause(\animeBtnFieldName);
+}
+\newcommand{\btnAnimePFAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,true,%
+ \aebp@btnAnime@type,false);
+}
+\newcommand{\btnAnimeSFAction}{%
+ if ( typeof \animeBtnFieldName\space=="undefined")\r\t
+ var \animeBtnFieldName= new Object();\r
+ btnAnimePlay(\animeBtnFieldName,"\animeBtnFieldName",%
+ "\animeBtnBaseName",\animeBtnSpeed,\nFrames,true,%
+ \aebp@btnAnime@type,true);
+}
+\newcommand{\btnAnimeLastAction}{%
+ if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimeLast(\animeBtnFieldName);
+}
+\newcommand{\btnAnimePlusAction}{%
+ if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimePlus(\animeBtnFieldName,\animeBtnSpeed);
+}
+\newcommand{\btnAnimeMinusAction}{%
+ if (typeof \animeBtnFieldName\space == "object")\r\t
+ btnAnimeMinus(\animeBtnFieldName,\animeBtnSpeed);
+}
+\begin{insDLJS}[_loadBtnAnimeCtrls]{btnanime}
+ {AeB Pro: Button and Ocg Anime Controls}
+var _loadBtnAnimeCtrls=true;
+var activeAnimes=new Array();
+function btnAnimePlay(oAnime,fieldName,baseFrameName,%
+nSpeed,nFrames,bForward,type,bStep) {
+ // ocgAnime is characterized by baseFrameName=""
+ if ( oAnime.animeStart && !oAnime.animePause ) return;
+ var callingFieldName=event.target.name;
+ var re=/\.anime(PB|PF)/;
+ var doRebuild=( event.shift && re.test(callingFieldName) );
+ if ( (arguments.length>1) && %
+( (typeof activeAnimes[fieldName] == "undefined")|| doRebuild) ) {
+ activeAnimes[fieldName]=oAnime;
+ oAnime.isOcgAnime=(baseFrameName==""); // ocg change
+ oAnime.fieldName=fieldName;
+ oAnime.baseFrameName=baseFrameName;
+ oAnime.numSecs=nSpeed;
+ oAnime.nFrames=nFrames;
+ oAnime.type=type;
+ oAnime.bStep=bStep;
+ oAnime.aMyIcons = new Array();
+ oAnime.count = 0;
+ if ( !oAnime.isOcgAnime ) {// ocg change
+ for ( var i=0; i < nFrames; i++) {
+ oAnime.aMyIcons[i] = this.getField(fieldName+"."+i);
+ oAnime.aMyIcons[i].display=(i==0)?display.visible:%
+display.hidden;
+ }
+ }
+ }
+ if (arguments.length>1) {
+ oAnime.bForward=bForward;
+ oAnime.bStep=bStep;
+ }
+ if (oAnime.bStep) {
+ this.delay=true
+ if ( oAnime.isOcgAnime ) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ var currCount=oAnime.count;
+ if (oAnime.bForward) {
+ oAnime.count++;
+ if (oAnime.count==oAnime.nFrames) // hit upper boundary
+ oAnime.count=(oAnime.type==0)?0:currCount;
+ } else {
+ oAnime.count--;
+ if (oAnime.count<0)
+ oAnime.count=(oAnime.type==0)?(oAnime.nFrames-1):0;
+ }
+ if ( oAnime.isOcgAnime ) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=true; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.visible;
+ this.delay=false;
+ } else {
+ var args="\""+oAnime.fieldName+"\","+oAnime.type;
+ oAnime.run = app.setInterval(%
+"btnAnimeNewFrame("+args+")",oAnime.numSecs);
+ oAnime.animeStart=true;
+ oAnime.animePause=false;
+ }
+}
+function btnAnimeFirst(oAnime)
+{
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ oAnime.animeStart=false;
+ oAnime.animePause=false;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ oAnime.count=0;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=true; // ocg
+ else
+ oAnime.aMyIcons[0].display=display.visible;
+}
+function btnAnimeLast(oAnime)
+{
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ oAnime.animeStart=false;
+ oAnime.animePause=false;
+ var l = oAnime.nFrames-1;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false; // ocg
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ oAnime.count=l;
+ if ( oAnime.isOcgAnime )
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(l+1)).state=true; // ocg
+ else
+ oAnime.aMyIcons[l].display=display.visible;
+}
+function btnAnimePause(oAnime)
+{
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ oAnime.animePause=true;
+}
+function btnAnimePlus(oAnime,nDefSpeed){
+ var isPlaying=(oAnime.animeStart&&!oAnime.animePause);
+ if (isPlaying) btnAnimePause(oAnime);
+ if ( event.shift ) oAnime.numSecs=nDefSpeed;
+ else oAnime.numSecs -= 50;
+ if (oAnime.numSecs<10) oAnime.numSecs=10
+ if (isPlaying) btnAnimePlay(oAnime);
+}
+function btnAnimeMinus(oAnime,nDefSpeed){
+ var isPlaying=(oAnime.animeStart&&!oAnime.animePause);
+ if (isPlaying) btnAnimePause(oAnime);
+ if ( event.shift ) oAnime.numSecs=nDefSpeed;
+ else oAnime.numSecs += 50;
+ if (isPlaying) btnAnimePlay(oAnime);
+}
+function btnAnimeNewFrame(fieldName, type)
+{
+ var oAnime=activeAnimes[fieldName];
+ this.delay=true
+ if ( oAnime.isOcgAnime ) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=false;
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.hidden;
+ var currCount=oAnime.count;
+ var bBdaryMet=false;
+ if (oAnime.bForward) {
+ oAnime.count++;
+ if (oAnime.count==oAnime.nFrames) {
+ if(type==0) oAnime.count \%= oAnime.nFrames;
+ else if(type==1) {
+ oAnime.count=currCount;
+ oAnime.count--;
+ oAnime.bForward=false;
+ } else {
+ bBdaryMet=true;
+ oAnime.count=currCount;
+ }
+ }
+ } else {
+ oAnime.count--;
+ if (oAnime.count<0) {
+ if(type==0) oAnime.count=(oAnime.nFrames-1);
+ else if(type==1) {
+ oAnime.count=currCount;
+ oAnime.count++;
+ oAnime.bForward=true;
+ } else { // stop
+ bBdaryMet=true;
+ oAnime.count=currCount;
+ }
+ }
+ }
+ if ( oAnime.isOcgAnime) // ocg change
+ getxBld("anime!!"+oAnime.fieldName+"\#"%
++(oAnime.count+1)).state=true;
+ else
+ oAnime.aMyIcons[oAnime.count].display=display.visible;
+ this.delay=false;
+ if ( type==2 && bBdaryMet ) {
+ try { app.clearInterval(oAnime.run);} catch(e){}
+ // try { app.clearTimeOut(timeout);} catch(e){}
+ oAnime.animeStart=false;
+ oAnime.animePause=false;
+ }
+}
+\end{insDLJS}
+\endinput
+%%
+%% End of file `anime_support.def'.