====== Differences ====== This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
script_animation_flip [2014/07/21 17:55] lm13 |
script_animation_flip [2014/09/24 16:10] (current) lm13 [About the script] |
||
---|---|---|---|
Line 5: | Line 5: | ||
* Link: https://plus.google.com/115366157037831519359/posts/EAUStJNGa5o | * Link: https://plus.google.com/115366157037831519359/posts/EAUStJNGa5o | ||
* Video : https://plus.google.com/115366157037831519359/posts/9eUTw8cCCpi | * Video : https://plus.google.com/115366157037831519359/posts/9eUTw8cCCpi | ||
+ | * Download avialable! (Check repository) | ||
====== Changelog ====== | ====== Changelog ====== | ||
Line 38: | Line 39: | ||
if(e.getSource()!="C_POSITION_CHANGED") | if(e.getSource()!="C_POSITION_CHANGED") | ||
{ | { | ||
- | if(cont==null) cont=new Object(); | + | if(cont==null) cont=new Object(); |
- | var box=d.getBoundingBox(); | + | var box=d.getBoundingBox(); |
- | cont.minx=box.getLeft(); | + | cont.minx=box.getLeft(); |
- | cont.maxx=box.getRight(); | + | cont.maxx=box.getRight(); |
- | cont.miny=box.getTop(); | + | cont.miny=box.getTop(); |
- | cont.maxy=box.getBottom(); | + | cont.maxy=box.getBottom(); |
- | var minpagex=Math.floor( cont.minx/dwidth); | + | var minpagex=Math.floor( cont.minx/dwidth); |
- | var minpagey=Math.floor( cont.miny/dheight); | + | var minpagey=Math.floor( cont.miny/dheight); |
- | if(cont.setup!=true) | + | if(cont.setup!=true) |
- | { | + | { |
- | cont.pages=[]; | + | cont.pages=[]; |
- | for(x=0;x<Math.ceil(cont.maxx/dwidth)-minpagex;x++) | + | for(x=0;x<Math.ceil(cont.maxx/dwidth)-minpagex;x++) |
- | { | + | { |
- | cont.pages[x]=[]; | + | cont.pages[x]=[]; |
- | for(y=0;y<Math.ceil(cont.maxy/dheight)-minpagey;y++) | + | for(y=0;y<Math.ceil(cont.maxy/dheight)-minpagey;y++) |
- | { | + | { |
- | cont.pages[x][y]=[]; | + | cont.pages[x][y]=[]; |
- | } | + | } |
- | } | + | } |
- | for(x=0;x<items.length;x++) | + | for(x=0;x<items.length;x++) |
- | { | + | { |
- | var i=items.getAt(x); | + | var i=items.getAt(x); |
- | var pinned=i.getProperties() .getString("i.pinMode"); | + | var pinned=i.getProperties() .getString("i.pinMode"); |
- | if(pinned!="XY") | + | if(pinned!="XY") |
- | { | + | { |
- | var data=new Object(); | + | var data=new Object(); |
- | data.posx=i.getPositionX(); | + | data.posx=i.getPositionX(); |
- | data.posy=i.getPositionY(); | + | data.posy=i.getPositionY(); |
- | data.rot=Math.abs(i.getRotation())==90; | + | data.rot=Math.abs(i.getRotation())==90; |
- | data.sx=data.rot?i.getScaleX():i.getScaleY(); | + | data.sx=data.rot?i.getScaleX():i.getScaleY(); |
- | data.sy=data.rot?i.getScaleY():i.getScaleX(); | + | data.sy=data.rot?i.getScaleY():i.getScaleX(); |
- | data.pin=pinned; | + | data.pin=pinned; |
- | if(i.getProperties().getBoolean("i.onGrid")) data.onGrid=true; | + | if(i.getProperties().getBoolean("i.onGrid")) data.onGrid=true; |
- | else data.onGrid=false; | + | else data.onGrid=false; |
- | i.getProperties().edit().setBoolean("i.onGrid",false).commit(); | + | i.getProperties().edit().setBoolean("i.onGrid",false).commit(); |
- | if(pinned=="X") | + | if(pinned=="X") |
- | { | + | { |
- | var ypages=cont.pages[Math.floor(data.posx/dwidth)-minpagex][Math.floor(data.posy/dheight)-minpagey]; | + | var ypages=cont.pages[Math.floor(data.posx/dwidth)-minpagex][Math.floor(data.posy/dheight)-minpagey]; |
- | for(z=0;cont.pages[z]!=null;z++) | + | for(z=0;cont.pages[z]!=null;z++) |
- | cont.pages[z][Math.floor(data.posy/dheight)-minpagey].push(i.getId()); | + | cont.pages[z][Math.floor(data.posy/dheight)-minpagey].push(i.getId()); |
- | } | + | } |
- | else if(pinned=="Y") | + | else if(pinned=="Y") |
- | { | + | { |
- | var xpages=cont.pages[Math.floor(data.posx/dwidth)-minpagex]; | + | var xpages=cont.pages[Math.floor(data.posx/dwidth)-minpagex]; |
- | for(z=0;z<xpages.length;z++) | + | for(z=0;z<xpages.length;z++) |
- | xpages[z].push(i.getId()); | + | xpages[z].push(i.getId()); |
- | } | + | } |
- | else cont.pages[Math.floor(data.posx/dwidth)-minpagex][Math.floor(data.posy/dheight)-minpagey].push(i.getId()); | + | else cont.pages[Math.floor(data.posx/dwidth)-minpagex][Math.floor(data.posy/dheight)-minpagey].push(i.getId()); |
- | i.setTag(JSON.stringify(data)); | + | i.setTag(JSON.stringify(data)); |
- | } | + | } |
- | } | + | } |
- | cont.setup=true; | + | cont.setup=true; |
- | Android.makeNewToast("Animation enabled",true).show(); | + | Android.makeNewToast("Animation enabled",true).show(); |
- | LL.writeToLogFile(JSON.stringify(cont.pages),false); | + | LL.writeToLogFile(JSON.stringify(cont.pages),false); |
- | } | + | } |
- | else | + | else |
- | { | + | { |
- | var cellw=d.getCellWidth(); | + | var cellw=d.getCellWidth(); |
- | var cellh=d.getCellHeight(); | + | var cellh=d.getCellHeight(); |
- | for(x=0;x<items.length;x++) | + | for(x=0;x<items.length;x++) |
- | { | + | { |
- | var i=items.getAt(x); | + | var i=items.getAt(x); |
- | var data=JSON.parse(i.getTag()); | + | var data=JSON.parse(i.getTag()); |
- | i.setScale(1,1); | + | i.setScale(1,1); |
- | if(data!=null&& data.onGrid==true) | + | if(data!=null&& data.onGrid==true) |
- | { | + | { |
- | iwidth=i.getWidth(); | + | iwidth=i.getWidth(); |
- | iheight=i.getHeight(); | + | iheight=i.getHeight(); |
- | i.getProperties().edit().setBoolean("i.onGrid",true).commit(); | + | 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)); | + | 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; | + | cont.setup=false; |
- | Android.makeNewToast("Animation disabled",true).show(); | + | Android.makeNewToast("Animation disabled",true).show(); |
- | } | + | } |
- | d.setTag(JSON.stringify(cont)); | + | d.setTag(JSON.stringify(cont)); |
} | } | ||
Line 133: | Line 134: | ||
if(((percentx>0.005 && percentx<99.995) ||(percenty>0.005 && percenty<99.995)) && dposx>cont.minx-dwidth && dposy>cont.miny-dheight) | if(((percentx>0.005 && percentx<99.995) ||(percenty>0.005 && percenty<99.995)) && dposx>cont.minx-dwidth && dposy>cont.miny-dheight) | ||
{ | { | ||
- | var scrollLimit=d.getProperties() .getBoolean("noScrollLimit"); | + | var scrollLimit=d.getProperties() .getBoolean("noScrollLimit"); |
- | if(dposx>cont.maxx-dwidth&&scrollLimit){ | + | if(dposx>cont.maxx-dwidth&&scrollLimit){ |
- | d.setPosition(cont.minx-dwidth,dposy,1,false); | + | d.setPosition(cont.minx-dwidth,dposy,1,false); |
- | } | + | } |
- | else if(dposy>cont.maxy-dheight&&scrollLimit) d.setPosition(dposx,cont.miny-dheight,1,false); | + | else if(dposy>cont.maxy-dheight&&scrollLimit) d.setPosition(dposx,cont.miny-dheight,1,false); |
- | if(dposx<cont.minx&&scrollLimit) | + | if(dposx<cont.minx&&scrollLimit) |
- | cont.statex=true; | + | cont.statex=true; |
- | if(dposy<cont.miny&&scrollLimit) | + | if(dposy<cont.miny&&scrollLimit) |
- | cont.statey=true; | + | cont.statey=true; |
- | + | ||
- | var items0=(cont.pages[(cont.statex?maxpagex:currentx)-minpagex]||[])[(cont.statey?maxpagey:currenty)-minpagey]; | + | var items0=(cont.pages[(cont.statex?maxpagex:currentx)-minpagex]||[])[(cont.statey?maxpagey:currenty)-minpagey]; |
- | if(items0!=null) | + | if(items0!=null) |
- | { | + | { |
- | for(z=0;z<items0.length;z++) | + | for(z=0;z<items0.length;z++) |
- | { | + | { |
- | var item=LL.getItemById(items0[z]); | + | var item=LL.getItemById(items0[z]); |
- | var data=JSON.parse(item.getTag()); | + | var data=JSON.parse(item.getTag()); |
- | item.setScale(((data.pin=="X"||percentx>=0.5||percenty>=0.5)?1:data.rot?1-percenty*2:1-percentx*2)*data.sx, ((data.pin=="Y"||percentx>=0.5||percenty>=0.5)?1:1-(data.rot?percentx:percenty)*2)*data.sy); | + | item.setScale(((data.pin=="X"||percentx>=0.5||percenty>=0.5)?1:data.rot?1-percenty*2:1-percentx*2)*data.sx, ((data.pin=="Y"||percentx>=0.5||percenty>=0.5)?1:1-(data.rot?percentx:percenty)*2)*data.sy); |
- | item.setPosition(data.pin=="X"?data.posx:dposx+((data.posx%dwidth+dwidth)%dwidth)+percentx*(dwidth- ((data.posx%dwidth+dwidth)%dwidth)*2),data.pin=="Y"?data.posy:dposy+((data.posy%dheight+dheight)%dheight)+percenty*(dheight- ((data.posy%dheight+dheight)%dheight)*2)); | + | item.setPosition(data.pin=="X"?data.posx:dposx+((data.posx%dwidth+dwidth)%dwidth)+percentx*(dwidth- ((data.posx%dwidth+dwidth)%dwidth)*2),data.pin=="Y"?data.posy:dposy+((data.posy%dheight+dheight)%dheight)+percenty*(dheight- ((data.posy%dheight+dheight)%dheight)*2)); |
- | item.setVisibility((percentx<0.5||data.pin=="X")&&(percenty<0.5||data.pin=="Y")); | + | item.setVisibility((percentx<0.5||data.pin=="X")&&(percenty<0.5||data.pin=="Y")); |
- | } | + | } |
- | } | + | } |
- | var items=(cont.pages[currentx+1-minpagex]||[])[(cont.statey?maxpagey:currenty)-minpagey]; | + | var items=(cont.pages[currentx+1-minpagex]||[])[(cont.statey?maxpagey:currenty)-minpagey]; |
- | if(items!=null) | + | if(items!=null) |
- | { | + | { |
- | for(z=0;z<items.length;z++) | + | for(z=0;z<items.length;z++) |
- | { | + | { |
- | if(items0==null||items0.indexOf(items[z])==-1) | + | if(items0==null||items0.indexOf(items[z])==-1) |
- | { | + | { |
- | var item=LL.getItemById(items[z]); | + | var item=LL.getItemById(items[z]); |
- | var data=JSON.parse(item.getTag()); | + | var data=JSON.parse(item.getTag()); |
- | item.setScale((data.pin=="X"||percentx<0.5||percenty>=0.5?1:data.rot?1-percenty*2:percentx>0.005?percentx*2-1:1)*data.sx,(data.pin=="Y"||percentx<0.5||percenty>=0.5?1:data.rot?(percentx>0.005?percentx*2-1:1):1-percenty*2)*data.sy); | + | item.setScale((data.pin=="X"||percentx<0.5||percenty>=0.5?1:data.rot?1-percenty*2:percentx>0.005?percentx*2-1:1)*data.sx,(data.pin=="Y"||percentx<0.5||percenty>=0.5?1:data.rot?(percentx>0.005?percentx*2-1:1):1-percenty*2)*data.sy); |
- | item.setPosition(data.pin=="X"?data.posx:dposx+dwidth/2*(2-percentx*2)+ ((data.posx%dwidth+dwidth)%dwidth)*(percentx*2-1),data.pin=="Y"?data.posy:dposy+((data.posy%dheight+dheight)%dheight)+percenty*(dheight- ((data.posy%dheight+dheight)%dheight)*2)); | + | item.setPosition(data.pin=="X"?data.posx:dposx+dwidth/2*(2-percentx*2)+ ((data.posx%dwidth+dwidth)%dwidth)*(percentx*2-1),data.pin=="Y"?data.posy:dposy+((data.posy%dheight+dheight)%dheight)+percenty*(dheight- ((data.posy%dheight+dheight)%dheight)*2)); |
- | item.setVisibility((percentx>=0.5||data.pin=="X")&&(percenty<0.5||data.pin=="Y")); | + | item.setVisibility((percentx>=0.5||data.pin=="X")&&(percenty<0.5||data.pin=="Y")); |
- | } | + | } |
- | } | + | } |
- | } | + | } |
- | var items=(cont.pages[(cont.statex?maxpagex:currentx)-minpagex]||[])[currenty+1-minpagey]; | + | var items=(cont.pages[(cont.statex?maxpagex:currentx)-minpagex]||[])[currenty+1-minpagey]; |
- | if(items!=null) | + | if(items!=null) |
- | { | + | { |
- | for(z=0;z<items.length;z++) | + | for(z=0;z<items.length;z++) |
- | { | + | { |
- | if(items0==null||items0.indexOf(items[z])==-1) | + | if(items0==null||items0.indexOf(items[z])==-1) |
- | { | + | { |
- | var item=LL.getItemById(items[z]); | + | var item=LL.getItemById(items[z]); |
- | var data=JSON.parse(item.getTag()); | + | var data=JSON.parse(item.getTag()); |
- | item.setScale((data.pin=="X"||percentx>=0.5||percenty<0.5?1:data.rot?(percenty>0.005?percenty*2-1:1):1-percentx*2)*data.sx,(data.pin=="Y"|| percentx>=0.5||percenty<0.5?1:data.rot?1-percentx*2:percenty>0.005?percenty*2-1:1)*data.sy); | + | item.setScale((data.pin=="X"||percentx>=0.5||percenty<0.5?1:data.rot?(percenty>0.005?percenty*2-1:1):1-percentx*2)*data.sx,(data.pin=="Y"|| percentx>=0.5||percenty<0.5?1:data.rot?1-percentx*2:percenty>0.005?percenty*2-1:1)*data.sy); |
- | item.setPosition(data.pin=="X"?data.posx:dposx+((data.posx%dwidth+dwidth)%dwidth)+percentx*(dwidth- ((data.posx%dwidth+dwidth)%dwidth)*2),data.pin=="Y"?data.posy:dposy+dheight/2*(2-percenty*2)+ ((data.posy%dheight+dheight)%dheight)*(percenty*2-1)); | + | item.setPosition(data.pin=="X"?data.posx:dposx+((data.posx%dwidth+dwidth)%dwidth)+percentx*(dwidth- ((data.posx%dwidth+dwidth)%dwidth)*2),data.pin=="Y"?data.posy:dposy+dheight/2*(2-percenty*2)+ ((data.posy%dheight+dheight)%dheight)*(percenty*2-1)); |
- | item.setVisibility((percentx<0.5||data.pin=="X")&&(percenty>=0.5||data.pin=="Y")); | + | item.setVisibility((percentx<0.5||data.pin=="X")&&(percenty>=0.5||data.pin=="Y")); |
- | } | + | } |
- | } | + | } |
- | } | + | } |
} | } | ||
else | else | ||
{ | { | ||
- | d.setPosition(dposx,dposy); | + | d.setPosition(dposx,dposy); |
- | d.setPosition(dposx<cont.minx?cont.maxx-dwidth:dposx,dposy<cont.miny?cont.maxy-dheight:dposy,1,false); | + | d.setPosition(dposx<cont.minx?cont.maxx-dwidth:dposx,dposy<cont.miny?cont.maxy-dheight:dposy,1,false); |
- | cont.statex=false; | + | cont.statex=false; |
- | cont.statey=false; | + | cont.statey=false; |
- | for(i=0;i<items.length;i++) | + | for(i=0;i<items.length;i++) |
- | { | + | { |
- | item=items.getAt(i); | + | item=items.getAt(i); |
- | var data=JSON.parse(item.getTag()); | + | var data=JSON.parse(item.getTag()); |
- | item.setScale(data.sx,data.sy); | + | item.setScale(data.sx,data.sy); |
- | item.setPosition(data.posx,data.posy); | + | item.setPosition(data.posx,data.posy); |
- | item.setVisibility(true); | + | item.setVisibility(true); |
- | } | + | } |
} | } | ||
</sxh> | </sxh> |