home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2005 November
/
CDVD1105.ISO
/
Util
/
Winamp
/
Skins
/
Anime_Shogo.wal
/
scripts
/
swordseekscrpt.m
< prev
next >
Wrap
Text File
|
2004-08-09
|
2KB
|
99 lines
//-----------------------------------------------------------------------------
// seekbyregion.m
//
// Example of an Animated Seekbar using Regions
// (Improved, no longer requires HiddenSeek)
//
// written by FrisbeeMonkey
//-----------------------------------------------------------------------------
#include </lib/std.mi>
Function setSwordSeekAnim(int posValue);
Function updateSwordSeek(int x, int y);
Global Layer SwordSeek;
Global Map SwordSeekMap;
Global Timer SwordSeekTimer;
Global Boolean SwordSeekChanging;
System.onScriptLoaded() {
Group SwordSeekGrp = getScriptGroup();
SwordSeek = SwordSeekGrp.findObject("SwordSeek");
SwordSeekTimer = new Timer;
SwordSeekTimer.setDelay(1000);
SwordSeekMap = new Map;
SwordSeekMap.loadMap("sword.seek.map");
if (getStatus()==0) {
setSwordSeekAnim(0);
} else {
SwordSeekTimer.start();
setSwordSeekAnim(255 * System.getPosition() / System.getPlayItemLength());
}
}
System.onPlay() {
SwordSeekTimer.start();
}
System.onStop() {
SwordSeekTimer.stop();
setSwordSeekAnim(0);
}
SwordSeekTimer.onTimer() {
setSwordSeekAnim(255 * System.getPosition() / System.getPlayItemLength());
}
setSwordSeekAnim(int Value) {
Region r = new Region;
r.loadFromMap(SwordSeekMap, Value, 1);
SwordSeek.setRegion(r);
delete r;
}
SwordSeek.onLeftButtonDown(int x, int y) {
SwordSeekTimer.stop();
SwordSeekChanging = 1;
updateSwordSeek(x, y);
}
SwordSeek.onLeftButtonUp(int x, int y) {
SwordSeekTimer.start();
if (SwordSeekChanging) {
SwordSeekChanging = 0;
updateSwordSeek(x, y);
}
}
SwordSeek.onLeaveArea() {
SwordSeekTimer.start();
if (SwordSeekChanging) SwordSeekChanging = 0;
}
SwordSeek.onMouseMove(int x, int y) {
if (SwordSeekChanging) {
updateSwordSeek(x, y);
}
}
updateSwordSeek(int x, int y) {
int newValue = SwordSeekMap.getValue(x - SwordSeek.getLeft(), y - SwordSeek.getTop());
if (System.getPlayItemLength() >= 0) {
int p = (newValue * 100) / 255;
int s = (newValue * System.getPlayItemLength()) / 255;
if (!SwordSeekChanging) {
System.seekTo(s);
}
setSwordSeekAnim(255 * s / System.getPlayItemLength());
}
}
System.onScriptUnloading() {
delete SwordSeekTimer;
delete SwordSeekMap;
}