|
SWiSH Forum Forum użytkowników programów SWiSH |
|
Skrypty do programu SWiSH2 i SWISHmax - 'losowe' zdarzenie czyli Math.randomInt()
nugatt - Wto 21 Cze, 2005 20:03 Temat postu: 'losowe' zdarzenie czyli Math.randomInt() na pisałem kiedyś coś na kształt tego: Cytat: | onFrame (1,afterPlacedObjectEvents) {
b_random = Math.randomInt(4);
if (b_random==0) {
g = 1;
}
if (b_random==1) {
g = 2;
}
if (b_random==2) {
g = 3;
}
if (b_random==3) {
g = 4;
}
}
onFrame (2,afterPlacedObjectEvents) {
stop();
} | skrypt ten w losuje nam 1 z 4 liczb. użyłem funkcji Math.randomInt("liczba"). zamiast "liczby" wpisujemy jakąś... liczbę, gdy wpiszemy 5 to uzyskamy losowo wynik od 0 do 4. można po przeróbkach użyć do innych celow, np. losowego wyboru klatki w scenie,w spricie, ładowaniu losowego jpg do flasha, itp. ja miałem kiedyś cos takiego do mojego beat playera Cytat: | onFrame (1,afterPlacedObjectEvents) {
bitch_random = Math.randomInt(9);
if (bitch_random==0) {
_parent.beatload.loadMovie("beat_01.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(10);
_parent.beat_set.gotoAndStop(5);
}
if (bitch_random==1) {
_parent.beatload.loadMovie("beat_02.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(11);
_parent.beat_set.gotoAndStop(15);
}
if (bitch_random==2) {
_parent.beatload.loadMovie("beat_03.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(12);
_parent.beat_set.gotoAndStop(25);
}
if (bitch_random==3) {
_parent.beatload.loadMovie("beat_04.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(13);
_parent.beat_set.gotoAndStop(35);
}
if (bitch_random==4) {
_parent.beatload.loadMovie("beat_05.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(14);
_parent.beat_set.gotoAndStop(45);
}
if (bitch_random==5) {
_parent.beatload.loadMovie("beat_06.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(15);
_parent.beat_set.gotoAndStop(55);
}
if (bitch_random==6) {
_parent.beatload.loadMovie("beat_07.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(16);
_parent.beat_set.gotoAndStop(65);
}
if (bitch_random==7) {
_parent.beatload.loadMovie("beat_08.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(17);
_parent.beat_set.gotoAndStop(75);
}
if (bitch_random==8) {
_parent.beatload.loadMovie("beat_09.swf");
_parent.preloader3.gotoAndPlay("prekaka2");
_parent.beat_mask.gotoAndStop(18);
_parent.beat_set.gotoAndStop(85);
}
}
onFrame (2,afterPlacedObjectEvents) {
stop();
} | możliwości jest wiele
roland - Sro 29 Cze, 2005 06:08
Podany przez Ciebie Skrypt można uprościć, jeżeli skorzysta się z tablicy, co jest szczególnie istotne, w przypadku wielu możliwich do wylosowania wariantów. Oto pierwszy z podanych przez Ciebie przykładów, z wykorzystaniem tablic:
Kod: | onFrame (1,afterPlacedObjectEvents) {
tablica = new Array;
tablica[0] = 1;
tablica[1] = 2;
tablica[2] = 3;
tablica[3] = 4;
b_random = Math.randomInt(4);
g = tablica[b_random];
}
onFrame (2,afterPlacedObjectEvents) {
stop();
} |
Chcąc bardziej uprościć skrypt, można zadeklarować wartości tablicy w jednym wierszu:
Kod: | onFrame (1,afterPlacedObjectEvents) {
tablica = new Array(1,2,3,4);
b_random = Math.randomInt(4);
g = tablica[b_random];
}
onFrame (2,afterPlacedObjectEvents) {
stop();
} |
W tym drugim przypadku, skrypt będzie działał jedynie dla animacji zapisanych w wersji co najmniej SWF5
nugatt - Sob 18 Lut, 2006 14:50
w końcu uprościłem do tego: Kod: | onFrame (1,afterPlacedObjectEvents) {
boom = Math.randomInt(9);
_parent.beatload.loadMovie("beat_0" add (boom + 1) add ".swf");
_parent.beat_mask.gotoAndStop(boom + 10);
_parent.preloader3.gotoAndPlay("prekaka2");
}
onFrame (2,afterPlacedObjectEvents) {
stop();
} | gdy np. 'Math.randomInt()' wylosuje 3 to załaduje się plik 'beat_04.swf' a sprite 'beat_mask' przejdzie do klatki 13
adam.albrycht - Nie 17 Wrz, 2006 00:50 Temat postu: losowe ladowanie sceny witam. problem jak w temacie. chcialbym na stronce umiescic swf'a z reklamami. ale nie chce zeby przy kazdej zmianie podstrony ladowalo sie od poczatku bo ktos moze nie zdazyc nigdy zobaczyc konca i chce zeby to to byly proste sceny i za kazdym razem jak sie laduje swf to laduje sie losowa scena. jak to zrobic?? z czego skorzystac?? nie umialem tu nic takiego znalezc. HELP z gory dzieki
BaGRoS - Nie 26 Lis, 2006 19:38
Jak losować x i y z zakresu wielkości filmu i ustawiać tam txt, a konkretnie "?", i zmieniać to co losową ilość klatek z zakresu min,max ?
Można użyć
onFrame (losowa) { }
|
|