SWiSH Forum
Forum użytkowników programów SWiSH

Skrypty do programu SWiSH2 i SWISHmax - dynamiczny wybór sceny

cyniu88 - Wto 16 Kwi, 2013 22:37
Temat postu: dynamiczny wybór sceny
witam !

animacja ma się tak: jest scena_1 odtwarza się do 15 klatki po czym się zatrzymuje

mam przycisk, który oznaczony jest tak
Kod:
onSelfEvent (press) {
   var scena:String = "Scena_3";
   
    _root.nextFrameAndPlay();
   
   
}
po wciśnięciu uruchamia odtwarzanie sceny. W ostatniej klatce sceny mam
Kod:
 onFrame (30) {_root.gotoSceneAndPlay( albumName , 2);
}
i oczywiście nie działa tak jak sobie to wymyśliłem z c++

i teraz pytanie czy da się zrobić kilka takich przycisków które po kliknięciu dokańczają odtwarzanie sceny i przy okazji wybierają którą scenę odtwarzać następną?

Januszr - Sro 17 Kwi, 2013 07:29

ActionScript to nie c :) Swish robi film a skrypt kieruje do odpowiednich klatek, animacji itp.
przeanalizuj to:
http://swish.wodip.opole....ght=prezentacja
a potem już pójdzie łatwo.

cyniu88 - Sro 17 Kwi, 2013 14:26

ok to znam ale to ciągle nie jest to co potrzebuję :) w ten sposób znam pytanie natomiast jest o to: w przykładzie robisz
Kod:
 on (release,keyPress("<Home>")) {
    gotoSceneAndPlay("<first scene>", 1);
}
a czy parametr do funkcji
Kod:
gotoSceneAndPlay
da się przekazać przez zmienna a nie przez
Kod:
"<first scene>"
?? i ps jeśli można do dla czego w takim zapisie
Kod:
var scena:Number = 2;
var wynik:Number  ;


if (scena > 2)
    wynik=3;
else if (scena < 2) 
    wynik=1;
else
    wynik=2;
w dynamicznym polu tekstowym da się wyświetlić zmienną
Kod:
scena
(poprawnie wyświetla się wartość 2), natomiast przy zmiennej
Kod:
wynik
nie wyświetla się nic

Januszr - Sro 17 Kwi, 2013 19:57

Dotarło :)
Najłatwiej wykorzystać gotowy skrypt do sterowania poprzez zmienne - w tym przypadku losowe:
Kod:
onFrame (1) {
    value = (Math.randomInt(5) plus 1);

}
onFrame (2) {
    if (value==norepeat) {
        gotoAndPlay(1)
    }
}
onFrame (3) {
    norepeat=value;
    // Follow this pattern to add more scenes.
    if (value==1) {
        gotoSceneAndPlay("scene_2",1);
    }
    if (value==2) {
        gotoSceneAndPlay("scene_3",1);
    }
    if (value==3) {
        gotoSceneAndPlay("scene_4",1);
    }
    if (value==4) {
        gotoSceneAndPlay("scene_5",1);
    }
    if (value==5) {
        gotoSceneAndPlay("scene_6",1);
    }
}

To jest dla 5 scen.
Kiedyś zrobiłem gotoSceneAndPlay w zależności od hasła (hasło do poziomów w gierce) ale na tej samej zasadzie: jeżeli hasło=XXX gotoSceneAndPlay numer

Nie spotkałem się z możliwościami wykorzystania zamiast numeru zmiennej. Aczkolwiek w sieci można znaleźć, że tego typu skrypt powinien wyglądać tak:
Kod:
var s;
s = "4";
gotoAndPlay("scene"+s, 1);

dla scen nazywanych scene1, scene2 itp.

O tym co można zrobić z gotoAndPlay w SWISH jest tutaj: http://www.swishzone.com/...3/gotoframe.htm

Mało to pomocne ale może wskaże właściwy kierunek?
Może jeszcze taka uwaga: AS wykonuje się na odnośnych klatkach i nie ma znaczenia kolejność w wierszach. Czyli najpierw trzeba ustalić VAR a na kolejnych klatkach z niego korzystać.

cyniu88 - Sro 17 Kwi, 2013 20:48

kurcze tak świetnie podałeś te informacje sorry że dalej głowę zawracam ale zobacz na plik zrobiłem niby tak jak mówisz a nie chce działać ;/
Januszr - Sro 17 Kwi, 2013 21:26

ESPE1 by to rozwiązał, ale gdzieś zaginął.

Powered by phpBB modified by Przemo © 2003 phpBB Group