====== About the script ====== * Purpose : This script will give you a beautiful page transition animation and an optional horizontal and vertical page loop * Author : [[https://plus.google.com/+LukasMorawietz|LM13]] * Current Version : 3.0.1 * Link : https://plus.google.com/115366157037831519359/posts/GXVcfSaWVRi * Video : https://plus.google.com/115366157037831519359/posts/N4vKniRC4pe * Download avialable! (Check repository) ====== Changelog ====== * Version 1.0 (1/4/2014): initial release in wiki * Version 2.0 (19/5/2014): added vertical support, improved smoothness * Version 2.1 (20/6/2014): added rotation check * Version 3.0.1 (20/7/2014): standalone, improved smoothness ====== How to use the script ====== * Set the script to the positionchanged event of your container * enable infinte scrolling if you want to have a screen loop * in this container: create a shortcut to the script * one click on the shortcut will enable the animation, clicking again will disable the animation. * BE SURE TO DISABLE THE ANIMATION BEFORE YOU EDIT, MOVE OR ADD ITEMS! ====== Issues and hints ====== * this will break any other script, which uses item or container tags, and will be broken by them * at some point it may flicker * don't use dual position, this will do weird stuff * make sure all of your items have exactly one of the following rotations: 0°,90°,180°,270° //please report all bugs in the g+ community// ====== Script code ====== var e=LL.getEvent(); var d=e.getContainer(); var cont= JSON.parse(d.getTag()||"null"); var items=d.getItems(); var dwidth=d.getWidth(); var dheight=d.getHeight(); if(e.getSource()!="C_POSITION_CHANGED") { if(cont==null) cont=new Object(); var box=d.getBoundingBox(); cont.minx=box.getLeft(); cont.maxx=box.getRight(); cont.miny=box.getTop(); cont.maxy=box.getBottom(); var minpagex=Math.floor( cont.minx/dwidth); var minpagey=Math.floor( cont.miny/dheight); if(cont.setup!=true) { cont.pages=[]; for(x=0;x0.005 && percentx<99.995) ||(percenty>0.005 && percenty<99.995)) && dposx>cont.minx-dwidth && dposy>cont.miny-dheight) { var scrollLimit=d.getProperties() .getBoolean("noScrollLimit"); if(dposx>cont.maxx-dwidth&&scrollLimit){ d.setPosition(cont.minx-dwidth,dposy,1,false); } else if(dposy>cont.maxy-dheight&&scrollLimit) d.setPosition(dposx,cont.miny-dheight,1,false); if(dposx0.005?percentx:1,data.pin=="Y"?1:data.rot?(percentx>0.005?percentx:1):1-percenty); item.setPosition(data.pin=="X"?data.posx:dposx+dwidth-(dwidth-(data.posx%dwidth+dwidth)%dwidth)*percentx,data.pin=="Y"?data.posy:dposy+((data.posy%dheight+dheight)%dheight)*(1-percenty)); } } var items=(cont.pages[(cont.statex?maxpagex:currentx)-minpagex]||[])[currenty+1-minpagey]; if(items!=null) { for(z=0;z0.005?percenty:1):1-percentx, data.pin=="Y"?1:data.rot?1-percentx:percenty>0.005?percenty:1); item.setPosition(data.pin=="X"?data.posx:dposx+((data.posx%dwidth+dwidth)%dwidth)*(1-percentx),data.pin=="Y"?data.posy:dposy+dheight-(dheight-(data.posy%dheight+dheight)%dheight)*percenty); } } var items=(cont.pages[currentx+1-minpagex]||[])[currenty+1-minpagey]; if(items!=null) { for(z=0;z0.005?percenty:1):percentx>0.005?percentx:1,data.pin=="Y"?1:data.rot?(percentx>0.005?percentx:1):percenty>0.005?percenty:1); item.setPosition(data.pin=="X"?data.posx:dposx+dwidth-(dwidth-(data.posx%dwidth+dwidth)%dwidth)*percentx,data.pin=="Y"?data.posy:dposy+dheight-(dheight-(data.posy%dheight+dheight)%dheight)*percenty); } } } else { d.setPosition(dposx,dposy); d.setPosition(dposx