SWiSH Forum Strona Główna SWiSH Forum
Forum użytkowników programów SWiSH

FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy  GrupyGrupy  StatystykiStatystyki
RejestracjaRejestracja  ZalogujZaloguj  DownloadDownload

Poprzedni temat «» Następny temat
losowa kolejność scen w danej sekwencji
Autor Wiadomość
patros 
Początkujący


Dołączył: 12 Lis 2009
Posty: 4
Skąd: świętokrzyskie
Wysłany: Czw 12 Lis, 2009 10:59   losowa kolejność scen w danej sekwencji

Witam,
próbuje zrobić skrypt wyświetlający reklamy (każda reklama to osobna scena). Znalazłem przykład jak za pomocą Math.random losować poszczególne sceny. Jednak odbywa się to za każdym razem po zakończonej danej scenie:
Kod:
onSelfEvent (load) {
 value = Math.floor(Math.random()*50);
 value=Math.ceil(value/10);  //this gives a better randomisation of 1,2,3,4 or 5.
 
  if (value==1) {
      gotoSceneAndPlay("Reklama_1",1);
  }
  if (value==2) {
      gotoSceneAndPlay("Reklama_2",1);
  }
  if (value==3) {
      gotoSceneAndPlay("Reklama_3",1);
  }
  if (value==4) {
      gotoSceneAndPlay("Reklama_4",1);
  }
  if (value==5) {
      gotoSceneAndPlay("Reklama_5",1);
  }
}
onFrame (151) {
    gotoSceneAndPlay("Losowanie",1);
}

i kod wykonywany na zakończenie danej sceny (każda scena zajmuje 151 klatek):
Kod:
onFrame (151) {
    gotoSceneAndPlay("Losowanie",1);
    }

Zamieszczony powyżej kod losuje za każdym razem (pojedynczo) następną scenę i uzyskuję efekt np. 1,4,4,1,4 całość działa prawidłowo, jednak chciałbym osiągnąć coś takiego:
w scenie "Losowanie" losowana jest sekwencja Reklam np. 3,5,2,4,1 i reklamy wyświetlają się w takiej kolejności ("w kółko") - oczywiście do następnego przeładowania flash i wygenerowania nowej sekwencji.
Mam nadzieję, że za bardzo nie pokręciłem z opisem i wszystko jest czytelne.
Będę wdzięczny za wszelkie podpowiedzi, wskazówki.

Pozdr.
 
     
mielu 


Pomógł: 131 razy
Wiek: 48
Dołączył: 06 Kwi 2006
Posty: 1177
Skąd: Kraków
Wysłany: Czw 12 Lis, 2009 13:00   

trzeba sprawdzać co zostało wylosowane przykład losowań lotto http://swish.wodip.opole....highlight=lotto
 
     
patros 
Początkujący


Dołączył: 12 Lis 2009
Posty: 4
Skąd: świętokrzyskie
Wysłany: Czw 12 Lis, 2009 13:19   

Dzięki za szybka odpowiedź. Niestety nie mogę przetestować tego przykładu. Dostaję komunikat:

Oczekiwano zmiennej w skrypcie:
Scene_1::onFrame (2)
Scene_1, linia 8: "losowana"+k=losowane_liczby[los];
 
     
mielu 


Pomógł: 131 razy
Wiek: 48
Dołączył: 06 Kwi 2006
Posty: 1177
Skąd: Kraków
Wysłany: Czw 12 Lis, 2009 13:52   

dawno dawno temu to działało a teraz z drobną poprawką też działa
Kod:
onFrame (1) {
    stop();
}
onFrame (2) {
    losowane_liczby=new Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49);
    for (k=1; k<=6; k++) {
        los=Math.randomInt(losowane_liczby.length);
        eval("losowana"+k)=losowane_liczby[los];
        losowane_liczby[los]=0;
        losowane_liczby.sort();
        losowane_liczby.shift();
        trace(losowane_liczby);
    }
 myNumbers = new  Array (losowana1,losowana2,losowana3,losowana4,losowana5,losowana6);
    myNumbers.sort();
 
     for (k=1; k<=6; k++) {
         eval("losowana"+k)=myNumbers.shift();
       
                        }
}

zamień kod
 
     
patros 
Początkujący


Dołączył: 12 Lis 2009
Posty: 4
Skąd: świętokrzyskie
Wysłany: Czw 12 Lis, 2009 17:07   

Działa. Zmieniłem sobie ilość liczb do 5 (tyle ma być scen) w tablicy i pętli.
Teraz pozostało mi wyświetlać kolejne sceny wg wylosowanej kolejności... i tu się zastanawiam czy zagnieżdżać instrukcje warunkowe if (chyba "najprostszy" i najmniej profesjonalny sposób) czy może w AS jest rozwiązanie lepiej wykonujące to zadanie?

[ Dodano: Nie 20 Gru, 2009 17:09 ]
Witam.
Nie tworzę nowego tematu (tylko odgrzewam stary) - znów się zabrałem za losowanie kolejności reklam i po raz kolejny poległem. W stosunku do pierwszego pomysłu zmieniłem to, że każda reklama będzie w osobnym pliku (a nie scenie-chyba tak lepiej). Wykorzystałem wskazówki od mielu i udało mi się stworzyć coś co losuje liczby od 1 do 5 (żadna się nie powtarza) jednak zawsze wyświetlana jest reklama odpowiadająca ostatniej wylosowanej liczbie.
Nie wiem, jak zrobić aby wykonywana pętla zatrzymywała się na czas wyświetlania kolejnych reklam i po wyświetleniu ostatniej rozpoczynała wyświetlanie od nowa.

Załączam wszystkie pliki.
 
     
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


Powered by phpBB modified by Przemo © 2003 phpBB Group
Nowe zasady dotyczące cookies. Wykorzystujemy pliki cookies, aby nasz serwis lepiej spełniał Państwa oczekiwania. Można zablokować zapisywanie cookies, zmieniając ustawienia przeglądarki.
         
Strona wygenerowana w 0.54 sekundy. Zapytań do SQL: 15