Avatar billede lokum Nybegynder
27. juni 2002 - 15:36 Der er 15 kommentarer og
1 løsning

Lyd i library

Jeg har en lydfil i mit library i en .swf som styres v.hj.a. script.
Fordi den kun ligger i library og ikke noget sted i selve filmen, så loades den som det allerførste!

Derfor kører min intro-preloader først EFTER at lyden er loadet, og indtil da... hvid skærm. Og det kan jeg ikke lide!

Hvad gør jeg???
Avatar billede hoejrup Nybegynder
27. juni 2002 - 15:54 #1
Har du prøvet at lægge den ud på scenen i din swf?

/per
Avatar billede brianus Nybegynder
27. juni 2002 - 20:34 #2
Lad være med at lægge den ud på scenen. Det får du kun ballade ud af. Det er meget bedre at styre lyden via actionscript.

Du skal i stedet lave en seperat swf, som kun indeholder lyden i library.

I din hovedfilm henter du lyden via loadMovie i _level1, når din preloader er begyndt - så er der ingen unødvendig ventetid på den.

Du kan bruge en onClipEvent Load på et movieclip i din lyd-swf til at fortælle din hovedfilm, om lyden er klar til afspilning.

Fik du den?

/Brian
Avatar billede lokum Nybegynder
27. juni 2002 - 21:06 #3
Ja, den er fanget. Men opfører den sig så ikke som en ekstern loadet swf, dvs. sådan at filmens preloader ikke kan "se" den. Grunden til at jeg har lagt den i filmen er netop at den skal starte i det øjeblik preloaderen er slut og filmen begynder.
Avatar billede brianus Nybegynder
27. juni 2002 - 21:30 #4
Joh, men så får du jo preloaderen til at tjekke, om filmen med lyden er indlæst, før du afspiller din hovedfilm.

Du kan fx i første frame i din lyd-swf lave et tomt movielip, som du laver denne action på:
onClipEvent (load) {
    with (_level0._root) {
        musikChecker = "true";
    }
}

Og så får du bare din preloader til at tjekke, om variablen musikChecker er lig med true, før den afspiller filmen.

/Brian
Avatar billede lokum Nybegynder
27. juni 2002 - 22:14 #5
Kan jeg udføre en getBytesLoaded() og Total på en eller anden måde?
Avatar billede hoejrup Nybegynder
27. juni 2002 - 22:48 #6
Har du prøvet at vælge lyden som stream?

/per
Avatar billede brianus Nybegynder
28. juni 2002 - 08:41 #7
Her er en tutorial til at lave preloader på objektet sound. Håber du kan bruge den.

http://www.flashkit.com/tutorials/Actionscripting/Creating-FlashGur-568/index.shtml

OBS: I Flash MX kan man forøvrigt definere, i hvilken frame flash skal loade lyden. Så kan man altså putte lyden ind i hovedfilmen og definere, at den først hentes efter preloaderen. Det er jo meget nemmere, men det virker desværre kun, hvis filmen publiceres som flash 6.

/Brian
Avatar billede lokum Nybegynder
28. juni 2002 - 11:47 #8
Hej brianus >>> Hvordan definerer man lydens placering i MX?
Jeg kender godt de tutorials der er på flashkit. Jeg har været lidt modvillig mod at lægge lyden eksternt pga. at preloaderen rent faktisk skal vise den procent der er at loade. Men jeg kan godt se din pointe.
Eneste (lidt fuskede) udvej er som hoejrup skriver, at lægge den ud et "diskret" sted i maintimeline.
Nå, men jeg prøver lige at se om jeg kan ordne det eksternt først!

>>> brianus, du lyder som om du er erfaren og grundig i flash - og kender detaljerne omkring f.eks. preloading. Kan du hjælpe mig med en lidt kompliceret een af slagsen?
Avatar billede lokum Nybegynder
28. juni 2002 - 12:28 #9
Nu virker det, næsten....
Jeg loader:

onClipEvent(load){
    loadMovie("loop1.swf",1);
}

Og loop1.swf siger:

onClipEvent (load) {
    with (_level1._root) {
        _root.musikChecker = true;
    }
}

Jeg tester (efter den første preloader):

if(_level1._root.musikChecker==true){
    play();
}else{
    this.gotoAndPlay ("prelyd");
}


Men hvad skal jeg så skrive i mit "kontrol-mc", hvor der før stod:

paused = false;
_level1.mySound = new Sound();
_level1.mySound.attachSound("loop1");
_level1.mySound.start("", 999);

Og hvordan starter og stopper jeg lyden???
Avatar billede brianus Nybegynder
28. juni 2002 - 15:00 #10
Du skriver: Jeg har været lidt modvillig mod at lægge lyden eksternt pga. at preloaderen rent faktisk skal vise den procent der er at loade
Svar: Hvis du følger tutorialen, så kender du bytesLoaded og totalBytes i både _level0 og _level1. Så skal du jo bare have din preloader til at lægge værdierne sammen, dividere dem og gange dem med 100. Så har du procenten samlet set.

I den frame, hvor lyden skal starte, placerer du bare din action:
_level1.mySound = new Sound();
_level1.mySound.attachSound("loop1");
_level1.mySound.start("", 999);

Hvis du skal stoppe lyden bruger du bare (evt. på en knap):
_level1.mySound.stop();

/Brian
Avatar billede lokum Nybegynder
29. juni 2002 - 12:53 #11
Ja, det skulle man tro. Men det virker desværre ikke.
Jeg kan desværre ikke starte lyden, efter at have lagt den eksternt...
Avatar billede lokum Nybegynder
29. juni 2002 - 13:13 #12
Jeg har kaldt filen "loop1" under Linkage, i den eksterne swf.
Avatar billede lokum Nybegynder
29. juni 2002 - 15:05 #13
Kan det have noget med scene1 og scene2 at gøre??
Avatar billede brianus Nybegynder
29. juni 2002 - 23:46 #14
Hm, så prøv at kode det ved at sende din lyd-swf frem til en frame, der har følgende kode:

musik = new Sound(_level1);
musik.attachSound( "loop1" );
musik.start( 0, 999 );
musik.setVolume(100);
stop();

/Brian

PS: Jeg går ud fra, at scene 1 og 2 er noget, du har i din hovedfilm, og så tror jeg ikke, det har indflydelse på, hvordan du starter lyd i en ekstern swf.
Avatar billede lokum Nybegynder
30. juni 2002 - 15:02 #15
Ja, nu funker det hele!
Kan du fortælle mig hvad forskellen er på
musik = new Sound(_level1);
og
_level1.mySound = new Sound();

Det må være der den afgørende forskel ligger....

Rigtig mange tak for din sublime hjælp!!!
((:
Avatar billede brianus Nybegynder
01. juli 2002 - 12:57 #16
Jeg ved ikke, hvad forskellen er. Det virker lidt ulogisk, at man ikke skal bruge _level1.mysound.

Men det ser ud til, at hvis man ikke angiver noget i parantesen i new Sound(), så kan man styre alle lydene i hele filmen. Det må jo sige, at man kan skrue op og ned for alle lyde på en gang - interessant. Det vil jeg prøve at eksperimentere med en dag.

/Brian
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