home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 November / CDVD1105.ISO / Util / Winamp / Skins / Anime_Shogo.wal / scripts / swordseekscrpt.m < prev    next >
Text File  |  2004-08-09  |  2KB  |  99 lines

  1. //-----------------------------------------------------------------------------
  2. // seekbyregion.m
  3. //
  4. // Example of an Animated Seekbar using Regions
  5. // (Improved, no longer requires HiddenSeek)
  6. //
  7. // written by FrisbeeMonkey
  8. //-----------------------------------------------------------------------------
  9.  
  10. #include </lib/std.mi>
  11.  
  12. Function setSwordSeekAnim(int posValue);
  13. Function updateSwordSeek(int x, int y);
  14.  
  15. Global Layer SwordSeek;
  16. Global Map SwordSeekMap;
  17. Global Timer SwordSeekTimer;
  18. Global Boolean SwordSeekChanging;
  19.  
  20. System.onScriptLoaded() {
  21.     Group SwordSeekGrp = getScriptGroup();
  22.  
  23.     SwordSeek = SwordSeekGrp.findObject("SwordSeek");
  24.  
  25.     SwordSeekTimer = new Timer;
  26.     SwordSeekTimer.setDelay(1000);
  27.  
  28.     SwordSeekMap = new Map;
  29.     SwordSeekMap.loadMap("sword.seek.map");
  30.  
  31.     if (getStatus()==0) {
  32.         setSwordSeekAnim(0);
  33.     } else {
  34.         SwordSeekTimer.start();
  35.         setSwordSeekAnim(255 * System.getPosition() / System.getPlayItemLength());
  36.     }
  37. }
  38.  
  39. System.onPlay() {
  40.     SwordSeekTimer.start();
  41. }
  42.  
  43. System.onStop() {
  44.     SwordSeekTimer.stop();
  45.     setSwordSeekAnim(0);
  46. }
  47.  
  48. SwordSeekTimer.onTimer() {
  49.     setSwordSeekAnim(255 * System.getPosition() / System.getPlayItemLength());
  50. }
  51.  
  52. setSwordSeekAnim(int Value) {
  53.     Region r = new Region;
  54.     r.loadFromMap(SwordSeekMap, Value, 1);
  55.     SwordSeek.setRegion(r);
  56.     delete r;
  57. }
  58.  
  59. SwordSeek.onLeftButtonDown(int x, int y) {
  60.     SwordSeekTimer.stop();
  61.     SwordSeekChanging = 1;
  62.     updateSwordSeek(x, y);
  63. }
  64.  
  65. SwordSeek.onLeftButtonUp(int x, int y) {
  66.     SwordSeekTimer.start();
  67.     if (SwordSeekChanging) {
  68.         SwordSeekChanging = 0;
  69.         updateSwordSeek(x, y);
  70.     }
  71. }
  72.  
  73. SwordSeek.onLeaveArea() {
  74.     SwordSeekTimer.start();
  75.     if (SwordSeekChanging) SwordSeekChanging = 0;
  76. }
  77.  
  78. SwordSeek.onMouseMove(int x, int y) {
  79.     if (SwordSeekChanging) {
  80.         updateSwordSeek(x, y);
  81.     }
  82. }
  83.  
  84. updateSwordSeek(int x, int y) {
  85.     int newValue = SwordSeekMap.getValue(x - SwordSeek.getLeft(), y - SwordSeek.getTop());
  86.     if (System.getPlayItemLength() >= 0) {
  87.         int p = (newValue * 100) / 255;
  88.         int s = (newValue * System.getPlayItemLength()) / 255;
  89.         if (!SwordSeekChanging) {
  90.             System.seekTo(s);
  91.         }
  92.         setSwordSeekAnim(255 * s / System.getPlayItemLength());
  93.     }
  94. }
  95.  
  96. System.onScriptUnloading() {
  97.     delete SwordSeekTimer;
  98.     delete SwordSeekMap;
  99. }