User Tools

Site Tools


script_animation_zigzag

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
script_animation_zigzag [2014/05/19 07:58]
lm13 created
script_animation_zigzag [2014/09/24 16:11] (current)
lm13 [About the script]
Line 1: Line 1:
 ====== About the script ====== ====== About the script ======
-  * Purpose : These scripts ​will give you a beautiful page transition animation and an optional horizontal page loop+  * Purpose : This script ​will give you a beautiful page transition animation and an optional horizontal page loop
   * Author : [[https://​plus.google.com/​+LukasMorawietz|LM13]]   * Author : [[https://​plus.google.com/​+LukasMorawietz|LM13]]
   * Idea : TrianguloY   * Idea : TrianguloY
-  * Current Version : 1.0 +  * Current Version : 2.0 
-  * Link: ...+  * Link: https://​plus.google.com/​115366157037831519359/​posts/​TSNpAgUzhQQ 
 +  * Video : https://​plus.google.com/​115366157037831519359/​posts/​4Ktw58WRMji 
 +  * Download avialable! (Check repository)
  
 ====== Changelog ====== ====== Changelog ======
   * Version 1.0 (19/​5/​2014):​ initial release in wiki   * Version 1.0 (19/​5/​2014):​ initial release in wiki
 +  * Version 2.0 (21/​7/​2014):​ standalone, reworked structure
  
  
  
 ====== How to use the script ====== ====== How to use the script ======
-  * Set the main script to the positionchanged event of your container; configure the main script, if you want another bounciness+  * Set the script to the positionchanged event of your container; configure the main script, if you want another bounciness
   * enable infinte scrolling if you want a page loop, disable it if you don't want to loop through pages   * enable infinte scrolling if you want a page loop, disable it if you don't want to loop through pages
-  * in this container: create a shortcut to the toggle ​script ​and set up toggle sripts configuration+  * in this container: create a shortcut to the script
   * one click on the shortcut will enable the animation, clicking again will disable the animation. ​   * 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!   * BE SURE TO DISABLE THE ANIMATION BEFORE YOU EDIT, MOVE OR ADD ITEMS!
Line 20: Line 23:
 //please report all bugs in the g+ community!//​ //please report all bugs in the g+ community!//​
  
-====== ​Main Script ====== +====== Script ====== 
-<code+<sxh javascript;>//config 
-</code>+var bounciness=0.5;​//from 0 (normal) to 1 (bounce complete to top) 
 +//endconfig
  
-====== Toggle Script ====== 
-<​code>​ 
-</​code>​ 
  
 +var e=LL.getEvent();​
 +var d=e.getContainer();​
 +var cont= JSON.parse(d.getTag()||"​null"​);​
 +var dwidth=d.getWidth();​
 +var dheight=d.getHeight();​
 +var items=d.getItems();​
 +
 +
 +
 + 
 +if(e.getSource()!="​C_POSITION_CHANGED"​){
 +var items=d.getItems();​
 +var box=d.getBoundingBox();​
 +if(cont==null) cont=new Object(); cont.minx=box.getLeft();​ cont.maxx=box.getRight();​
 +var minpage=Math.floor(cont.minx/​dwidth);​
 +if(cont.setup!=true) ​
 +
 +cont.pages=[];​
 +for(x=0;​x<​Math.ceil(cont.maxx/​dwidth)-minpage;​x++)
 +{
 +cont.pages[x]=[];​
 +
 +for(x=0;​x<​items.length;​x++) ​
 +
 +var i=items.getAt(x); ​
 +var pinned=i.getProperties() .getString("​i.pinMode"​);​
 +if(pinned=="​NONE"​|| pinned=="​Y"​)
 +{
 +var data=new Object(); data.posx=i.getPositionX();​ data.posy=i.getPositionY();​ if(i.getProperties().getBoolean("​i.onGrid"​)) data.onGrid=true; ​
 +else data.onGrid=false;​ i.getProperties().edit().setBoolean("​i.onGrid",​false).commit();​
 +var p=Math.floor(data.posx/​dwidth)-minpage;​
 +cont.pages[p].push(i.getId());​
 +i.setTag(JSON.stringify(data)); ​
 +}
 +}
 +cont.setup=true;​ Android.makeNewToast("​Animation enabled",​true).show();​
 +
 +else
 +
 +var cellw=d.getCellWidth(); ​
 +var cellh=d.getCellHeight();​
 +for(x=0;​x<​items.getLength();​x++) ​
 +
 +var i=items.getAt(x); ​
 +var data=JSON.parse(i.getTag());​
 +if(data!=null)
 +{
 +i.setPosition(data.posx,​data.posy);​
 +if(data.onGrid==true) ​
 +
 +iwidth=i.getWidth();​ iheight=i.getHeight();​ i.getProperties().edit().setBoolean("​i.onGrid",​true).commit(); ​
 +i.setCell(Math.round(data.posx/​cellw),​Math.round(data.posy/​cellh),​Math.round((data.posx+iwidth)/​cellw),​Math.round(( data.posy+iheight)/​cellh)); ​
 +
 +
 +
 +cont.setup=false;​ Android.makeNewToast("​Animation disabled",​true).show(); ​
 +
 +d.setTag(JSON.stringify(cont));​
 +}
 +
 +if(cont==null || !cont.setup || d.getPositionScale()!=1)return;​
 +var dposx=d.getPositionX();​
 +var dposy=d.getPositionY();​
 +var current=Math.floor(dposx/​dwidth);​
 +var pagepos=current*dwidth;​
 +var percent=(dposx-pagepos)/​dwidth;​
 +var l=items.getLength();​
 +var maxpage=Math.floor( (cont.maxx-dwidth)/​dwidth);​
 +var minpage=Math.floor(cont.minx/​dwidth);​
 +
 +if((percent>​0.005 && percent<​99.995) && dposx>​cont.minx-dwidth)
 +{
 + var scrollLimit=d.getProperties() .getBoolean("​noScrollLimit"​);​
 +if(dposx>​cont.maxx-dwidth&&​scrollLimit){
 +d.setPosition(cont.minx-dwidth,​dposy,​1,​false);​
 +}
 +if(dposx<​cont.minx&&​scrollLimit)
 +cont.state=true;​
 +var items=cont.pages[(cont.state?​maxpage:​current)-minpage];​
 +if(items!=null)
 +{
 +for(a=0;​a<​items.length;​a++)
 +{
 +item=LL.getItemById(items[a]);​
 +var data=JSON.parse(item.getTag());​
 +item.setPosition(pagepos+((data.posx%dwidth+dwidth)%dwidth),​data.posy-percent*dheight*bounciness);​
 +}
 +}
 +var items=cont.pages[current+1-minpage];​
 +if(items!=null)
 +{
 +for(a=0;​a<​items.length;​a++)
 +{
 +item=LL.getItemById(items[a]);​
 +var data=JSON.parse(item.getTag());​
 +item.setPosition(data.posx,​data.posy-dheight*(1-percent)*bounciness);​
 +}
 +}
 +}
 +else
 +{
 +d.setPosition(dposx,​dposy);​
 +d.setPosition(dposx<​cont.minx?​cont.maxx-dwidth:​dposx,​dposy,​1,​false);​
 +cont.state=false;​
 +for(i=0;​i<​items.length;​i++)
 +{
 +item=items.getAt(i);​
 +var data=JSON.parse(item.getTag());​
 +item.setPosition(data.posx,​data.posy);​
 +}
 +}
 +</​sxh>​
script_animation_zigzag.1400486302.txt.gz · Last modified: 2014/05/19 07:58 by lm13