swipe_gallery.xml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <krpano version="1.18">
  2. <action name="make_gallery">
  3. trace(%0 %1);
  4. <!-- config -->
  5. set(min_movement, 50); <!-- minimal movement in pixels needed to swipe picture -->
  6. set(show_arrows, true); <!-- show gallery arrows -->
  7. <!-- creating galery -->
  8. if (%1 != null,
  9. <!-- removing previous gallery -->
  10. for(copy(i, plugin.count), i GE 0, dec(i),
  11. if(plugin[get(i)].parent == gallery_scrollarea,
  12. removeplugin(get(i));
  13. );
  14. );
  15. set(activeGallery, %1);
  16. <!-- scroller's width -->
  17. mul(layer[gallery_scrollarea].width, stagewidth, gallery[%1].img.count);
  18. layer[gallery_scrollarea].setcenter(0,0);
  19. set(pic_id, 0);
  20. <!-- adding images -->
  21. for(set(i,0), i LT gallery[%1].img.count, inc(i),
  22. set(iname, get(gallery[%1].img[get(i)].name));
  23. txtadd(cname, get(gallery[%1].img[get(i)].name), '_container');
  24. addlayer(get(cname));
  25. set(layer[get(cname)].type, container);
  26. set(layer[get(cname)].parent, gallery_scrollarea);
  27. set(layer[get(cname)].width, get(stagewidth));
  28. set(layer[get(cname)].height, get(stageheight));
  29. set(layer[get(cname)].bgcolor, 0x000000);
  30. set(layer[get(cname)].bgalpha, 0.0);
  31. set(layer[get(cname)].bgcapture, true);
  32. set(layer[get(cname)].align, left);
  33. set(layer[get(cname)].edge, center);
  34. mul(layer[get(cname)].x, stagewidth, i);
  35. div(layer[get(cname)].ox, stagewidth, 2);
  36. set(layer[get(cname)].id, get(i));
  37. set(layer[get(cname)].ondown, set(gallery_scrollarea_start_pos, get(layer[gallery_scrollarea].x)));
  38. set(layer[get(cname)].onup, move_image());
  39. addlayer(get(iname));
  40. set(layer[get(iname)].url, get(gallery[%1].img[get(i)].url));
  41. set(layer[get(iname)].parent, gallery_scrollarea);
  42. set(layer[get(iname)].align, left);
  43. set(layer[get(iname)].edge, center);
  44. mul(layer[get(iname)].x, stagewidth, i);
  45. div(layer[get(iname)].ox, stagewidth, 2);
  46. set(layer[get(iname)].enabled, false);
  47. set(layer[get(iname)].onloaded, if (pixelwidth GT stagewidth OR pixelheight GT stageheight, div(hscale, stagewidth, pixelwidth); div(vscale, stageheight, pixelheight); if (hscale GT vscale, copy(height, stageheight); set(width, PROP); , copy(width, stagewidth); set(height, PROP))));
  48. );
  49. ,
  50. trace(%0: missed gallery name);
  51. );
  52. <!-- showing/hidding arrows -->
  53. if(show_arrows == true AND gallery[%1].img.count GT 1,
  54. set(layer[arrow_left].visible, false);
  55. set(layer[arrow_right].visible, true);
  56. ,
  57. set(layer[arrow_left].visible, false);
  58. set(layer[arrow_right].visible, false);
  59. );
  60. </action>
  61. <action name="move_image">
  62. trace(%0 %1);
  63. sub(gallery_scrollarea_direction, gallery_scrollarea_start_pos, layer[gallery_scrollarea].x);
  64. <!-- 'moving' by arrows clicking (parames left/right) -->
  65. if(%1 == left, set(gallery_scrollarea_direction, -500));
  66. if(%1 == right, set(gallery_scrollarea_direction, 500));
  67. Math.abs(movement, gallery_scrollarea_direction);
  68. if (movement GT min_movement,
  69. if(gallery_scrollarea_direction LT 0,
  70. <!-- move right -->
  71. dec(pic_id);
  72. if(pic_id LT 0, inc(pic_id));
  73. ,
  74. <!-- move left -->
  75. inc(pic_id);
  76. if(pic_id GE gallery[get(activeGallery)].img.count, dec(pic_id));
  77. );
  78. <!-- updating arrows status -->
  79. if(show_arrows == true,
  80. sub(last_img_id, gallery[get(activeGallery)].img.count, 1);
  81. if(pic_id LE 0, set(layer[arrow_left].visible, false), set(layer[arrow_left].visible, true));
  82. if(pic_id LT last_img_id, set(layer[arrow_right].visible, true), set(layer[arrow_right].visible, false));
  83. );
  84. );
  85. mul(gallery_scrollarea_new_pos, pic_id, stagewidth);
  86. div(stagewidth2, stagewidth, 2);
  87. add(gallery_scrollarea_new_pos, stagewidth2);
  88. layer[gallery_scrollarea].scrolltocenter(get(gallery_scrollarea_new_pos),0);
  89. </action>
  90. <action name="hide_gallery">
  91. tween(layer[gallery].alpha, 0);
  92. </action>
  93. <action name="show_gallery">
  94. set(foo,%1);
  95. if(%1 != activeGallery,
  96. make_gallery(%1);
  97. );
  98. tween(layer[gallery].alpha, 1);
  99. </action>
  100. </krpano>