Avatar billede trick Nybegynder
26. februar 2002 - 19:29 Der 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
Avatar billede trick Nybegynder
26. februar 2002 - 22:59 #1
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…

Fik lige udsat deadline til ved en 15 tiden… *gg*

trick ;o)
Avatar billede Himbear Nybegynder
27. februar 2002 - 10:50 #2
Du kan bruge noget af det her:

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!
Avatar billede Himbear Nybegynder
27. februar 2002 - 10:56 #3
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
Avatar billede trick Nybegynder
27. februar 2002 - 11:16 #4
Det var dæleme dejligt ;o)
Tilbage er kun tids problemet...
Avatar billede Himbear Nybegynder
27. februar 2002 - 11:28 #5
Det tror jeg ikke er så stort et problem! Ved du på forhånd hvad det er for en film der skal afspilles?
Avatar billede Himbear Nybegynder
27. februar 2002 - 11:46 #6
Du skal bare bruge:

if the time = "23:00 PM" then
sprite(1).member = member(f?)
end if

Hvis du ikke kan få det til at virke kan du lige prøve at lave et field og bruge:

put the time into field memeber "test"

Så kan du se om du skal bruge PM/AM!
Avatar billede trick Nybegynder
27. februar 2002 - 12:04 #7
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)

I'm out trick
Avatar billede Himbear Nybegynder
27. februar 2002 - 12:40 #8
Tak for det! Men hvad med dine .swf'er?
Avatar billede trick Nybegynder
27. februar 2002 - 14:38 #9
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).

trick ;o)
Avatar billede Himbear Nybegynder
27. februar 2002 - 14:57 #10
Prøv at tjekke om du skal bruge PM!

Lav et field der hedder "test" og brug denne:

put the time into field memeber "test"

Så kan du se hvordan tiden er formuleret.
Avatar billede trick Nybegynder
27. februar 2002 - 15:43 #11
Jeg takker nok en gang, løste det ved:

  tid = the time
  if the time = "23:00 " then
    go to "film"
  end if

I'm out
trick;o)
Avatar billede Himbear Nybegynder
27. februar 2002 - 15:47 #12
tid = the time

Hvad bruger du den til?
Avatar billede trick Nybegynder
27. februar 2002 - 15:52 #13
Ellers kan den ikke tjekke på tiden, underligt nok, prøvet uden, men det ville den ikke, men det virker med den som variabel...
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
Kurser inden for grundlæggende programmering

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