26. februar 2002 - 19:29Der er
12 kommentarer og 1 løsning
random() fortsat…
Nu er den gal igen…
For at forstå problemet er jeg nok kort nød til at beskrive hvad det hele går ud på… Vi er nogle studerende der er i gang med et projekt, hvor vi blandt andet, skal ha lavet et lille program der kan køre en random loop af op til 20 QT movies og 20 swf (flash) filer. Men også autostarte en bestemt QT movie kl. 23, uanset hvilken film eller swf fil den ellers var i gang med…
Hvor langt er jeg så nået humm jo ser du, med hjælp her indefra er det allerede lykkes mig at lave en detiktion på hvornår QT filmen er færdig og herefter køre en random funktion så den starter en ny QT film
on exitFrame me myMember = sprite(1).member myDuration = member(myMember).duration myMovietime = sprite(1).movieTime if myDuration > myMovietime then go to the frame else sprite(1).member = member("f" & random(5)) go to the frame end if end
men ak og ve da jeg lavet det var jeg ikke klar over at den også skulle kunne køre SWF filer og at det ikke var fast lagt hvor mange fil af de 2 slags der skal bruges… Ej heler at det ikka var fast lagt hvor mange filer der skulle indrages i random funktionen.
Så nu til mine mange spørgsmål:
Hvordan kan jeg importere alle filerne fra en mappe, få Derector til at tælle antal af importeret filer (de kommer alle til at hede f1, f2 o.s.v.) skele mellem SWF filer og QT filer, detecte hvornår en SWF fil er kørt færdig og sidst men ikke mindst autostarte en bestemt fil (med et andet navn, som ligger som cast member fra starten, tror det er nemmere) på et bestemt tidspunkt???
Kan alt dette lade sig gøre???
Selv om du måske ikke lige kan hjælpe men det heler er ALT hjælp kærkommen.
Håber ikke min problem formulering er for tvetydig og at nogle kan hjælpe mig, har deadline i morgen…
På forhånd tak
trick ;o)
p.s. jeg har som i kan se sat 100 point på højkant og tror det er rimeligt, så hvis vi nu siger 60 for swf problemet og 40 for autostart problemer håber jeg det er fair
Okay kom lige på en løsnings idé der hjælper lidt! Jeg laver swf. filerne med et andet navn og en integreret kode til slut så næste random funktion bliver kaldt fra swf filen.
Jeg vil så lave en random mellem filer der starter med ”a” eller ”f” hvor den så hopper hen til en marker a eller f og laver en ny random mellem de fil typer.
Så tilbage er at importere filerne fra en eksterne mapper, tror jeg næsten jeg har løsningen på, men vil da gerne se hvilken muligheder der er da de jo også skal tælles op og antalet gemmes som 2 tal variabler, som jeg kan placere i de to random() koden for marker a og f, hvis man kan…
Og sidst men ikke mindst det med at den skal åbne en bestemt fil kl. 23…
on fFolder fileList = [ ] repeat with i = 1 to 50 n = getNthFileNameInFolder(the moviePath&"f", i) if n = EMPTY then exit repeat fileList.append(n) end repeat return fileList end fFolder on exitFrame me fCount = fFolder().count test = the number of members of castLib "f" if fCount > the number of members of castLib "f" then repeat with i = 1 to fCount fPath = "@:f:f" &i &".mov" member("f1", "f").duplicate(i) importFileInto member i of castLib "f", fPath if i = fCount then exit repeat end if end repeat end if end
Det henter .mov filer ind fra en mappe der hedder "f". Mappen skal ligge samme sted som din movie. Husk det med at kalde .mov filerne f1, f2 osv.
I din movie skal du også lave en ny cast der hedder "f" alle dine filer vil blive placeret i den. Du skal sørge for at have et member i "f" der hedder "f1" til at starte med og den SKAL ligge som nr. 1 i cast'en. Hvis du tager thumbnail ruderne frem så kan du se om den gør det.
På et tidspunkt havde jeg problemer med at den begyndte at overskrive og duplikerere members i min internal cast, så du skal lige lave en kopi af din movie og afprøve det deri. Og gem hver gang inden du afspiller!
Hov! Der var lige en linie jeg havde glemt at slette, brug den her i stedet:
on fFolder fileList = [ ] repeat with i = 1 to 50 n = getNthFileNameInFolder(the moviePath&"f", i) if n = EMPTY then exit repeat fileList.append(n) end repeat return fileList end fFolder on exitFrame me fCount = fFolder().count if fCount > the number of members of castLib "f" then repeat with i = 1 to fCount fPath = "@:f:f" &i &".mov" member("f1", "f").duplicate(i) importFileInto member i of castLib "f", fPath if i = fCount then exit repeat end if end repeat end if end
Ja det bliver en film men et 3. navn, bare for at gøre det nemt, en som vil ligge som cast member fra starten, jeg fik rettet din anden kode til så den bruger resultatet af en optælning i random på denne måde: on exitFrame me fantal = the number of members of castLib "f" sprite(1).member = member("f" & random(fantal)) end
Tilbage er kun at sige mange mange tak til tino_bh du løber med puljen ;o)
løste jeg sådan: on exitFrame me if random(2) = 2 then play frame "fla" else play frame "qt" end if end
som ligger under en marker "ran"
I min flash fil lavet jeg så følgende script i sidste frame: getURL ("Lingo: go to \"ran\"");
så det spiller bare nu, mange tak for hjælpen. Tiden kan jeg ikke helt få til at virke, sidder og leger lidt med det nu (burde jo ikke forvolde de helt store problemer).
Ellers kan den ikke tjekke på tiden, underligt nok, prøvet uden, men det ville den ikke, men det virker med den som variabel...
Synes godt om
Ny brugerNybegynder
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.