summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/media9
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-06-15 23:26:34 +0000
committerKarl Berry <karl@freefriends.org>2015-06-15 23:26:34 +0000
commitc97f81e751680c5d701f238849741eb545777965 (patch)
tree256de2ae0fd748ed04713c6729291bcce704fc55 /Master/texmf-dist/source/latex/media9
parent3d6c925a00f8281b1c8f8e3863c7e8938f02c73e (diff)
media9 (3jun15)
git-svn-id: svn://tug.org/texlive/trunk@37551 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/media9')
-rw-r--r--Master/texmf-dist/source/latex/media9/files/config.xml96
-rw-r--r--Master/texmf-dist/source/latex/media9/files/ctan_lion_350x350.pngbin81950 -> 0 bytes
-rw-r--r--Master/texmf-dist/source/latex/media9/media9.tex15
-rw-r--r--Master/texmf-dist/source/latex/media9/players/APlayer.mxml5
-rw-r--r--Master/texmf-dist/source/latex/media9/players/APlayer9.mxml4
-rw-r--r--Master/texmf-dist/source/latex/media9/players/SlideShow.mxml94
-rw-r--r--Master/texmf-dist/source/latex/media9/players/VPlayer.mxml5
-rw-r--r--Master/texmf-dist/source/latex/media9/players/VPlayer9.mxml4
8 files changed, 149 insertions, 74 deletions
diff --git a/Master/texmf-dist/source/latex/media9/files/config.xml b/Master/texmf-dist/source/latex/media9/files/config.xml
index 2c7907c61f7..043a39b1c47 100644
--- a/Master/texmf-dist/source/latex/media9/files/config.xml
+++ b/Master/texmf-dist/source/latex/media9/files/config.xml
@@ -1,57 +1,73 @@
<?xml version="1.0"?>
<SlideShow>
<!--
- Configuration file template for SlideShow.swf
+ Configuration file template for SlideShow.swf
- SlideShow.swf can display life and static PNG/JPEG/GIF image
- files from remote servers or residing on the same server as the
- app itself.
+ SlideShow.swf can display life and static PNG/JPEG/GIF image
+ files from remote servers or residing on the same server as the
+ app itself.
- Pass this file to SlideShow.swf using the `xml=<configuration
- file>' FlashVar.
+ Pass this file to SlideShow.swf using the `xml=<configuration
+ file>' FlashVar.
- **NOTE**: For security reasons of Flash Player, the configuration
- file and SlideShow.swf must reside on the same web server or
- be both embedded into the PDF. Different web servers or the
- combination of web server location and embedding into the PDF
- throws a security error.
+ **NOTE**: For security reasons of Flash Player, the configuration
+ file and SlideShow.swf must reside on the same web server or
+ be both embedded into the PDF. Different web servers or the
+ combination of web server location and embedding into the PDF
+ throws a security error.
- An image definition starts with <Img [attributes]> and ends
- with </Img>. All attributes in the opening <Img [attributes]>
- tag are optional:
+ An image definition starts with <Img [attributes]> and ends
+ with </Img>. All attributes in the opening <Img [attributes]>
+ tag are optional:
- live="<refresh interval in [s]>" for live remote image
- rot90="<integer number>" initial rotation by number*90°
+ live="<refresh interval in [s]>" for live remote image
+ rot90="<integer number>" initial rotation by number*90°
- The <URL>...</URL> element is mandatory, while the <caption>...</caption>
- element is not.
+ Inside an image definition, at least one <URL [attributes]>...</URL>
+ element is required. The attributes are optional. More than one URL may
+ be given to provide image files at various resolutions. The best one
+ fitting within the current display size will be chosen dynamically.
+ In the case of multiple URLs, the actual resolution of each image should
+ be told using the
- An image URL, given between <URL> and </URL>, can be absolute,
- that is starting with 'http://...', or relative to the location
- of SlideShow.swf. See the examples.
+ size="<width>x<height>"
+
+ attribute, which specifies the image file dimensions in pixels.
+
+ Some servers generate bitmap graphics at arbitrary resolution upon
+ request. In such cases, one or both of the attributes
+
+ width="<width pattern>" height="<height pattern>"
+
+ may be given in the opening URL tag. <width pattern> and <height
+ pattern>, if present in the URL string, will be substituted with
+ the current display dimensions.
+
+ An image URL, given between <URL> and </URL>, can be absolute, that is,
+ starting with 'http://...', or relative to the location of SlideShow.swf.
+
+ The <caption>...</caption> element inside the image definition is optional.
-->
- <!-- three live images; refresh interval in [s] -->
- <Img live="3">
- <caption>Live remote image.</caption>
+ <Img live="3"> <!-- Live image, refreshed every 3 seconds -->
+ <caption>Mow-the-lawn simulation (live remote image).</caption>
<URL>http://dev.eightbeers.org/tex/corner-icon.png</URL>
</Img>
- <Img live="500">
- <caption>Aurora australis forecast (live remote image).</caption>
- <URL>http://services.swpc.noaa.gov/images/aurora-forecast-southern-hemisphere.png</URL>
- </Img>
- <Img live="500">
- <caption>Aurora borealis forecast (live remote image).</caption>
- <URL>http://services.swpc.noaa.gov/images/aurora-forecast-northern-hemisphere.png</URL>
+ <Img> <!-- remote image with dynamic size URL -->
+ <caption>"An algorithm must be seen to be believed." (Donald E. Knuth)
+Remote image URL with dynamic size that is reloaded while resizing the display.</caption>
+ <URL width="@@@@@">https://openclipart.org/image/@@@@@px/svg_to_png/137407/1304882618.png</URL>
</Img>
- <!-- static image with URL relative to SlideShow.swf location -->
- <Img>
- <caption>CTAN lion drawing by Duane Bibby. Thanks to www.ctan.org.</caption>
- <URL>files/ctan_lion_350x350.png</URL>
+ <Img> <!-- remote image with multiple URLs of different resolution -->
+ <caption>CTAN lion drawing by Duane Bibby. Thanks to www.ctan.org.
+Remote image with URLs at various resolutions ("responsive image").</caption>
+ <URL size="200x178" >http://mirrors.ctan.org/macros/latex/contrib/media9/doc/files/ctan_lion_200.png</URL>
+ <URL size="400x355" >http://mirrors.ctan.org/macros/latex/contrib/media9/doc/files/ctan_lion_400.png</URL>
+ <URL size="800x710" >http://mirrors.ctan.org/macros/latex/contrib/media9/doc/files/ctan_lion_800.png</URL>
+ <URL size="1200x1065">http://mirrors.ctan.org/macros/latex/contrib/media9/doc/files/ctan_lion_1200.png</URL>
</Img>
- <!-- static remote image -->
- <Img rot90="3">
- <caption>Lion from the LaTeX project site, rotated by 3x90°.
-Press `r' or `R' to change orientation.</caption>
- <URL>http://latex-project.org/lib/img/lion.png</URL>
+ <Img rot90="3"> <!-- static image with URL relative to SlideShow.swf location -->
+ <caption>Static embedded image file with initial rotation of 3x90°.
+Press "r" or "R" to change orientation.</caption>
+ <URL>files/cubeposter.png</URL>
</Img>
</SlideShow>
diff --git a/Master/texmf-dist/source/latex/media9/files/ctan_lion_350x350.png b/Master/texmf-dist/source/latex/media9/files/ctan_lion_350x350.png
deleted file mode 100644
index c24d9a98f25..00000000000
--- a/Master/texmf-dist/source/latex/media9/files/ctan_lion_350x350.png
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/source/latex/media9/media9.tex b/Master/texmf-dist/source/latex/media9/media9.tex
index 83ea652d847..997bf1e3347 100644
--- a/Master/texmf-dist/source/latex/media9/media9.tex
+++ b/Master/texmf-dist/source/latex/media9/media9.tex
@@ -681,10 +681,10 @@ function & argument &description\\\hline\hline
{\tt pause} & & pause slide-show\\
{\tt playPause} & & toggle between play and pause\\
{\tt setXML} & string & load another configuration file (path to file, embedded using option `{\tt addresource}', or URL)\\
-{\tt seek} & int number & go to slide `number', zero-based\\
-{\tt slideNum} & & returns current slide number, zero-based; only useful in JavaScript via `{\tt callAS}' method\\
+{\tt seek} & int number & go to slide `number' (zero-based)\\
+{\tt slideNum} & & returns current slide number (zero-based); only useful in JavaScript via `{\tt callAS}' method\\
{\tt numSlides} & & returns total number of slides in the slide-show; only useful in JavaScript via `{\tt callAS}' method\\
-{\tt playing} & & returns boolean value `{\tt true}', if the media is currently playing, `{\tt true}' otherwise; only useful in JavaScript via `{\tt callAS}' method\\
+{\tt playing} & & returns boolean value `{\tt true}', if the slide-show is currently playing, `{\tt true}' otherwise; only useful in JavaScript via `{\tt callAS}' method\\
{\tt rotate} & int number (optional) & rotate current slide by number$\times\SI{90}{\degree}$\\\hline
\end{tabular}
\end{table}
@@ -774,7 +774,8 @@ parameter & description\\\hline\hline
\begin{figure}%[bp]
\centering
%\lstinputlisting[basicstyle=\scriptsize\ttfamily,language=XML]{config.xml}
-\inputminted[fontsize=\footnotesize]{xml}{test/config.xml}
+\vspace{-10\baselineskip}
+\inputminted[fontsize=\footnotesize]{xml}{files/config.xml}
\caption{Configuration file template (XML format) for `SlideShow.swf'}\label{SlideShowXML}
\end{figure}
@@ -789,7 +790,7 @@ parameter & description\\\hline\hline
width=\linewidth,height=\linewidth,
activate=pageopen,
addresource=config.xml, %embedded configuration
- addresource=files/ctan_lion_350x350.png, %embedded image file
+ addresource=files/cubeposter.png, %embedded image file
flashvars={xml=config.xml},
passcontext %show the player's context menu
]{}{SlideShow.swf}
@@ -801,12 +802,12 @@ parameter & description\\\hline\hline
width=\linewidth,height=\linewidth,
activate=pageopen,
addresource=config.xml, %embedded configuration
- addresource=files/ctan_lion_350x350.png, %embedded image file
+ addresource=files/cubeposter.png, %embedded image file
flashvars={xml=config.xml},
passcontext %show the player's context menu
]{}{SlideShow.swf}
\hfill}
-\caption{Slide-show example with one embedded and several remote image files, some of which are live images. The listing in Fig.~\ref{SlideShowXML} is used as content of file \myAcrobatmenu{ShowHideFileAttachment}{`config.xml'}. Manually cycle forwards through the images by mouse-click or backwards by \usebox{\COO}+mouse-click. Play/pause auto-cycling through the slide-show by hitting \usebox{\CtoC}. Also, the context (right-click) menu of the player can be used.}\label{slideshowex}
+\caption{Slide-show example with one embedded and several remote image files, one of which is a live image. Images 2 and 3 are examples of remote images with variable resolution; the best fitting image resolution is requested from the server depending on the current display size. The listing in Fig.~\ref{SlideShowXML} is used as content of file \myAcrobatmenu{ShowHideFileAttachment}{`config.xml'}. Manually cycle forwards through the images by mouse-click or backwards by \usebox{\COO}+mouse-click. Play/pause auto-cycling through the slide-show by hitting \usebox{\CtoC}. Also, the context (right-click) menu of the player can be used.}\label{slideshowex}
\end{figure}
\begin{figure}[bp]
diff --git a/Master/texmf-dist/source/latex/media9/players/APlayer.mxml b/Master/texmf-dist/source/latex/media9/players/APlayer.mxml
index 9be181f2f5d..263123a369d 100644
--- a/Master/texmf-dist/source/latex/media9/players/APlayer.mxml
+++ b/Master/texmf-dist/source/latex/media9/players/APlayer.mxml
@@ -4,7 +4,7 @@
<!-- a FlashPlayer-10 compatible component for playing -->
<!-- MP3 audio files and streams. -->
<!-- -->
-<!-- version 20150511 -->
+<!-- version 20150601 -->
<!-- -->
<!-- -->
<!-- The free Apache Flex 4 SDK is required to compile -->
@@ -39,7 +39,7 @@
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
- preinitialize="initialise(FlexGlobals.topLevelApplication.parameters);"
+ preinitialize="initialise(this.parameters);"
applicationComplete="initSound();addEventListeners();
fadeTargets=new Array(playProgress, caption);"
creationComplete="initCallBacks();initContext();"
@@ -76,7 +76,6 @@
private var keyPressed:Boolean=false;
private var mouseIsOver:Boolean=false;
- import mx.core.FlexGlobals;
private function initialise(flashVars:Object):void {
source=flashVars.source;
if(flashVars.policy) policy=flashVars.policy;
diff --git a/Master/texmf-dist/source/latex/media9/players/APlayer9.mxml b/Master/texmf-dist/source/latex/media9/players/APlayer9.mxml
index 8c12fa943ab..cc1a1a0c629 100644
--- a/Master/texmf-dist/source/latex/media9/players/APlayer9.mxml
+++ b/Master/texmf-dist/source/latex/media9/players/APlayer9.mxml
@@ -4,7 +4,7 @@
<!-- a FlashPlayer-9 compatible component for playing -->
<!-- MP3 audio files and streams. -->
<!-- -->
-<!-- version 20150511 -->
+<!-- version 20150601 -->
<!-- -->
<!-- Copyright (C) 2012-today Alexander Grahn -->
<!-- -->
@@ -24,7 +24,7 @@
<!-- -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- preinitialize="initialise(Application.application.parameters);"
+ preinitialize="initialise(this.parameters);"
applicationComplete="initSound();addEventListeners();"
creationComplete="initCallBacks();initContext();"
mouseDown="pause();setFocus();"
diff --git a/Master/texmf-dist/source/latex/media9/players/SlideShow.mxml b/Master/texmf-dist/source/latex/media9/players/SlideShow.mxml
index 6d7087bbc70..743d482602d 100644
--- a/Master/texmf-dist/source/latex/media9/players/SlideShow.mxml
+++ b/Master/texmf-dist/source/latex/media9/players/SlideShow.mxml
@@ -4,7 +4,7 @@
<!-- a FlashPlayer-10 compatible component for -->
<!-- JPEG/PNG/GIF slideshows. -->
<!-- -->
-<!-- version 20150511 -->
+<!-- version 20150601 -->
<!-- -->
<!-- -->
<!-- The free Apache Flex 4 SDK is required to compile -->
@@ -38,8 +38,9 @@
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
- preinitialize="initialise(FlexGlobals.topLevelApplication.parameters);"
+ preinitialize="initialise(this.parameters);"
applicationComplete="initApp();"
+ resize="if(dynResolution){dynResolution=false;forcedByUsr=true;setImgSrc();}"
backgroundAlpha="0"
>
<fx:Script>
@@ -73,15 +74,15 @@
{
slideshowXML = new XML(loader.data);
setXMLDone=true;
+ rotations=new Object();
seek(0);
if(autoPlay) play();
}
}
- import mx.core.FlexGlobals;
[Bindable] private var delay:Number=5;
[Bindable] private var autoPlay:Boolean=false;
- private var xmlfile:String;
+ private var xmlfile:String=null;
private function initialise(flashVars:Object):void {
xmlfile=flashVars.xml;
@@ -95,6 +96,7 @@
private var curFile:String;
private var idx:Number=0;
+ private var urlIdx:Number=0;
[Bindable] private var src1:String;
[Bindable] private var src2:String;
@@ -104,15 +106,22 @@
if(Img1.visible){
n==0 ? Img1.rotation=0 : Img1.rotation+=90*Math.floor(n);
Img1.rotation%=360;
- rotations[slideshowXML.Img[idx].URL.toString()]=Img1.rotation/90;
+ rotations[slideshowXML.Img[idx].URL[urlIdx].toString()]=
+ Img1.rotation/90;
} else {
n==0 ? Img2.rotation=0 : Img2.rotation+=90*Math.floor(n);
Img2.rotation%=360;
- rotations[slideshowXML.Img[idx].URL.toString()]=Img2.rotation/90;
+ rotations[slideshowXML.Img[idx].URL[urlIdx].toString()]=
+ Img2.rotation/90;
}
}
+ import mx.collections.ArrayCollection;
+ import spark.collections.Sort;
+ import spark.collections.SortField;
+
private var forcedByUsr:Boolean;
+ private var dynResolution:Boolean;
private function setImgSrc():void {
if(reloadTimer && reloadTimer.hasEventListener(TimerEvent.TIMER)){
@@ -126,7 +135,57 @@
CursorManager.setBusyCursor();
timeoutTimer.start();
isIOError=true;
- curFile=slideshowXML.Img[idx].URL.toString();
+
+ urlIdx=0;
+ if(slideshowXML.Img[idx].URL.length()>1){
+ var sizes:ArrayCollection = new ArrayCollection();
+ for(var i:Number=0; i<slideshowXML.Img[idx].URL.length(); i++){
+ var sizeStr:String=slideshowXML.Img[idx].URL[i].attribute("size");
+ if(sizeStr.match(/^\s*[0-9]+x[0-9]+\s*$/)){
+ var xsize:Number=Number(sizeStr.replace(/x[0-9]+/, ""));
+ var ysize:Number=Number(sizeStr.replace(/[0-9]+x/, ""));
+ sizes.addItem(
+ {size: xsize*ysize, index: i, x: xsize, y: ysize});
+ }
+ }
+ if(sizes.length>0){
+ dynResolution=true;
+ var sort:Sort = new Sort();
+ sort.fields=[new SortField("size",true,true)];
+ sizes.sort=sort;// ^--descending order
+ sizes.refresh();
+
+ urlIdx=sizes.getItemAt(0).index;
+ for(i=0; i<sizes.length; i++){
+ if(
+ sizes.getItemAt(i).x >= this.width ||
+ sizes.getItemAt(i).y >= this.height
+ ) urlIdx=sizes.getItemAt(i).index;
+ }
+ }
+ }
+
+ curFile=slideshowXML.Img[idx].URL[urlIdx].toString();
+
+ var pattern:RegExp;
+ if(slideshowXML.Img[idx].URL[urlIdx].attribute('height').length() > 0){
+ pattern = new RegExp(
+ slideshowXML.Img[idx].URL[urlIdx].attribute('height'), "g");
+ if(curFile.search(pattern)>-1){
+ dynResolution=true;
+ curFile=curFile.replace(pattern, this.toString());
+ }
+ }
+
+ if(slideshowXML.Img[idx].URL[urlIdx].attribute('width').length() > 0){
+ pattern = new RegExp(
+ slideshowXML.Img[idx].URL[urlIdx].attribute('width'), "g");
+ if(curFile.search(pattern)>-1){
+ dynResolution=true;
+ curFile=curFile.replace(pattern, this.width.toString());
+ }
+ }
+
if(Img1.visible) {
src2=null; src2=curFile;
} else {
@@ -305,10 +364,10 @@
}
});
- rotations=new Object();
timeoutTimer=new Timer(30000, 1);
timeoutTimer.addEventListener(TimerEvent.TIMER, onAnyError);
- curFile=xmlfile; setXML(xmlfile);
+ curFile=xmlfile; if(xmlfile) setXML(xmlfile);
+ CursorManager.hideCursor();
}
private var isIOError:Boolean;
@@ -322,7 +381,7 @@
src1=null; src1="/dev/null"
}
caption.text=e.type+': '+curFile;
- if(caption.text==TimerEvent.TIMER)
+ if(e.type==TimerEvent.TIMER)
caption.text="timeout after 30 s: "+curFile;
CursorManager.removeBusyCursor();
}else{
@@ -350,8 +409,8 @@
slideNo.visible=slideNo.includeInLayout=false;
}
var curRot:Number=0;
- if (rotations.hasOwnProperty(slideshowXML.Img[idx].URL.toString()))
- curRot=rotations[slideshowXML.Img[idx].URL.toString()];
+ if (rotations.hasOwnProperty(slideshowXML.Img[idx].URL[urlIdx].toString()))
+ curRot=rotations[slideshowXML.Img[idx].URL[urlIdx].toString()];
else
curRot=Number(slideshowXML.Img[idx].attribute('rot90'));
rotate(0);
@@ -363,10 +422,10 @@
} else {
caption.text="";
caption.visible=false;
- }
- if(!isReload) anim.play();
+ }
+ if(!isReload) anim.play();
if(slideshowXML.Img[idx].attribute('live')>0)
- cache.removeCacheEntry(slideshowXML.Img[idx].URL.toString());
+ cache.removeCacheEntry(curFile);
}
CursorManager.removeBusyCursor();
isEnabled=true;
@@ -420,7 +479,8 @@
<s:Button alpha="0" width="100%" height="100%"
mouseUp="forcedByUsr=true;nextSlide(event);"
- mouseOver="anim.play();"
- mouseOut="if(anim.isPlaying) anim.reverse(); else anim.play(null,true);"
+ mouseOver="anim.play();CursorManager.showCursor();"
+ mouseOut="if(anim.isPlaying) anim.reverse(); else anim.play(null,true);
+ CursorManager.hideCursor();"
/>
</s:Application>
diff --git a/Master/texmf-dist/source/latex/media9/players/VPlayer.mxml b/Master/texmf-dist/source/latex/media9/players/VPlayer.mxml
index d3ef5e17fad..ff3dc7962b0 100644
--- a/Master/texmf-dist/source/latex/media9/players/VPlayer.mxml
+++ b/Master/texmf-dist/source/latex/media9/players/VPlayer.mxml
@@ -4,7 +4,7 @@
<!-- a FlashPlayer-10 compatible component for playing -->
<!-- FLV and MP4/H.264 video files and streams. -->
<!-- -->
-<!-- version 20150511 -->
+<!-- version 20150601 -->
<!-- -->
<!-- -->
<!-- The free Apache Flex 4 SDK is required to compile -->
@@ -39,7 +39,7 @@
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
- preinitialize="initialise(FlexGlobals.topLevelApplication.parameters);"
+ preinitialize="initialise(this.parameters);"
applicationComplete="initApp();"
backgroundAlpha="0"
>
@@ -60,7 +60,6 @@
private var pauseAtPos:Number = -1;
private var toBePaused:Boolean = false;
- import mx.core.FlexGlobals;
private function initialise(flashVars:Object):void {
source=flashVars.source;
if(flashVars.autoPlay=='true'){autoPlay=true}
diff --git a/Master/texmf-dist/source/latex/media9/players/VPlayer9.mxml b/Master/texmf-dist/source/latex/media9/players/VPlayer9.mxml
index 7d748112a95..5ecbaaf4d53 100644
--- a/Master/texmf-dist/source/latex/media9/players/VPlayer9.mxml
+++ b/Master/texmf-dist/source/latex/media9/players/VPlayer9.mxml
@@ -4,7 +4,7 @@
<!-- a FlashPlayer-9 compatible component for playing -->
<!-- FLV and MP4/H.264 video files and streams. -->
<!-- -->
-<!-- version 20150511 -->
+<!-- version 20150601 -->
<!-- -->
<!-- Copyright (C) 2012-today Alexander Grahn -->
<!-- -->
@@ -24,7 +24,7 @@
<!-- -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- preinitialize="initialise(Application.application.parameters);"
+ preinitialize="initialise(this.parameters);"
applicationComplete="initApp();"
backgroundAlpha="0"
paddingTop="0" paddingBottom="0"