Avatar billede dingemann Novice
22. juli 2004 - 00:43 Der er 10 kommentarer og
1 løsning

Do While-look-a-like

uhm jeg skal bruge en ActionScript-kodestump som ligner Do Until strukturen.

Rent time-linemæssigt går det ud på at afspilningshovedet stopper på en key og fortsætter når _currentframe et andet sted er nået til fx slutningen af et MC

Pseudokoden er vel i retningen af:

Do While sti._currentframe er mindre end "20" {
// ingenting skråstreg looping
} else {
    play() // fortsætter afspilingshovedets nuværende position
}


Funktionel kildekode som substituere overstående pseudokode efterlyses :)

Jeg har bemærket at dette ikke er så let som jeg måske troede det ville være - mine programmerings-erfaringer stammer fra VB og der er jeg glad for Do While og Do Until men mangler dem lidt her...

(essensen er at to animationer skal 'lappes' sammen og animation 2 skal først state når animation 1 er færdig da de skal have en fade-overgang... jeg er meget opsat på at gøre det på overstående metode så alternativer er - uhm - ikke lige dem jeg leder mest efter foruden jeg ikke har andre løsninger)

// Peter
Avatar billede barklund Nybegynder
22. juli 2004 - 00:50 #1
Man har do..while løkker i ActionScript - men ActionScript er et framebaseret "sprog" og derfor kan man ikke have en framekode alene, der står og kører mens noget andet også gør. Istedet skal du lave en funktion, som kaldes med et vist interval som tester på det andet movieclips _currentframe:

function test_den_anden() {
    if (den_anden._currentframe < 20) {
        clearInterval(interval);
        play();
    }
}
var interval = setInterval(test_den_anden, 50); // kører hvert 50. millisekund
stop();
Avatar billede barklund Nybegynder
22. juli 2004 - 00:51 #2
(gående ud fra, at du bruger flash 6 eller nyere)
Avatar billede dingemann Novice
22. juli 2004 - 01:23 #3
uhm - jeg tror måske jeg har fattet det - kunne jeg få dig til at lave et meget kort eksempel? (ikke at jeg ikke vil selv men det hjælper altid at kigge andre over nakken når den ikke lige er sevet helt ind)
Avatar billede barklund Nybegynder
22. juli 2004 - 11:59 #4
Jamen det er jo et eksempel :)

Ovenstående script tester hele tiden, om den_anden (som er en direkte reference til et movieclip) er på en frame mindre end 20 - eller var det omvendt? I så fald uskift sammenligningsoperatoren tilsvarende :)

--
Morten Barklund
Avatar billede dingemann Novice
23. juli 2004 - 16:09 #5
okay har jeg fattet det rigtigt (og undskyld jeg ikke har svaret før - har ikke lige haft tid) at det der sker er at afspilningshovedet stopper ved funktionen og køre i loop indtil if-stæningen er opfyldt :D for hvis det er så er det jo forholdsvist simpelt (og så fatter jeg ikke at jeg ikke selv kunne regne den ud)

// Peter
Avatar billede dingemann Novice
23. juli 2004 - 18:46 #6
Mangler der ikke en eller anden stop-funktion ?
Har lavet et eksempel på http://62.107.55.219/default/tis/untitled1.fla på hvordan jeg ville ha sat din funktion ind... men det virker ikke helt...
Avatar billede barklund Nybegynder
24. juli 2004 - 01:38 #7
Jamen, du har jo heller ikke nogen frame 99 - og dit script er helt forkert!

Du må ikke digte et script - så virke det ikke!

Hvis du skriver:

function testing() {
    if (test._currentframe == 15) { // 15 er sidste frame i test
        clearInterval(interval);
        play();
    }
}
var interval = setInterval(testing, 50);
stop();

Så vil det virke fint.

Og ja, der manglede en stop() funktion - den havde du jo slettet fra mit script, som jeg havde skrevet til dig tidligere! :)

Altså, forbudt at modificere scripts efter egen fornøjelse og forbudt at finde på ting undervejs - som frames, der ikke findes, eller sammenligninger, der ikke giver mening - deal? :)

--
Morten Barklund
Avatar billede dingemann Novice
24. juli 2004 - 10:28 #8
min fejl - har fået det til at virke nu (http://62.107.55.219/default/kope.dk)

"Tak for hjælpe - du er bare alle tiders" (lyder som noget fra en reklame. Smid et svar og du skal få point
Avatar billede barklund Nybegynder
24. juli 2004 - 20:45 #9
Yesyes ;)
Avatar billede dingemann Novice
26. juli 2004 - 14:37 #10
...tadaaaaa
Avatar billede barklund Nybegynder
26. juli 2004 - 15:05 #11
Tark for points ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester