Avatar billede snigeren Nybegynder
12. juli 2004 - 13:58 Der er 14 kommentarer og
3 løsninger

fadein sound

Hej

Hvordan laver man fadein på en musikfil?

/Snig
Avatar billede mobius6 Juniormester
12. juli 2004 - 14:09 #1
lige under der hvor du vælger din lyd (properties) kan du sætte egenskaber for den valgte lyd
vælg "fade in"
:)

(hvis du henter externt så vis lige koden, hvordan du har lavet det?)
Avatar billede snigeren Nybegynder
12. juli 2004 - 14:32 #2
jeg kan ikke lige finde "fade in" er det i MX 2004 man kan det?

men her er det script jeg bruger til at importere musikken:

var mainTimeline = this;
/*
* Method: Sound.checkLoadProgress()
*  Desc: Checks progress of a load().
*        Called only by preload(). Reports download progress
*        by invoking a custom Sound.onBytesLoaded() handler.
*/
Sound.prototype.checkLoadProgress = function () {
  // Check how many kilobytes have loaded.
  var kbLoaded = Math.floor(this.getBytesLoaded()/1024);
  // Check the size of the file loading, in kilobytes.
  var kbTotal = Math.floor(this.getBytesTotal()/1024);
  // Calculate the percent complete.
  var percentDone = isNaN(Math.floor(kbLoaded/kbTotal * 100)) ?
                    0 : Math.floor(kbLoaded/kbTotal * 100);
  // Execute the onBytesLoaded() callback, which
  // typically would display load progress.
  this.onBytesLoaded(this.getBytesLoaded(),
                    this.getBytesTotal(),
                    kbLoaded,
                    kbTotal,
                    percentDone);
}

/*
* Method: Sound.clearLoadCheck()
*  Desc: Cancels an interval calling checkLoadProgress().
*/
Sound.prototype.clearLoadCheck = function () {
  // If there is a load interval for this Sound object...
  if (this.loaderID) {
    // ...stop calling it.
    clearInterval(this.loaderID);
  }
}

/*
* Method: Sound.preloadSound()
*  Desc: Begins the download of a sound file and executes
*        checkLoadProgress() every 200ms until the file has loaded.
*        Parameters are the same as Sound.loadSound().
*/
Sound.prototype.preloadSound = function (url, isStreaming) {
  // Always stop any previous preload before proceeding.
  this.clearLoadCheck();

  // Call checkLoadProgress() every 200 milliseconds.
  this.loaderID = setInterval(this, "checkLoadProgress", 200);

  // Load the Sound file.
  this.loadSound(url, isStreaming);
}

// =================
// Usage
// =================
// Create a sound object.
lyd = new Sound();

// Assign an onLoad() callback.
lyd.onLoad = function (success) {
  // Cancel the preload interval (REQUIRED!).
  this.clearLoadCheck();

  // If the load was successful...
  if (success) {
    // ...use the new Sound. For example, if the loaded
    // sound is an event sound, we can start it like this:
    // this.start();
    mainTimeline.loadMsg_txt.text = "100 % loaded...";
    _parent.gotoAndStop(2);
    _parent.playing=true;
    _parent.pladeRiller_mc.play();
    _root.minimenu_mc.eq_mc.gotoAndPlay(1);
  } else {
    // ...otherwise, perform failure operations.
    mainTimeline.loadMsg_txt.text = "Load failed.";
  }
}

// Assign an onBytesLoaded() callback. This is where each
// individual Sound object can decide what to do
// with the preload information.
lyd.onBytesLoaded = function (bytesLoaded, bytesTotal, kbLoaded, kbTotal, percentLoaded) {
  mainTimeline.loadMsg_txt.text = percentLoaded + " % loaded...";
}

// Load a streaming sound.
lyd.preloadSound("flash/sound/cosmopolitan.mp3", true);
lyd.onSoundComplete = function() {
    this.preloadSound("flash/sound/cosmopolitan.mp3", true);
}
Avatar billede asgrone Nybegynder
12. juli 2004 - 15:59 #3
du kan lave et fadein sådan her:
// fadein
onClipEvent (load) {
    i = 0;
    _root.loop1 = new Sound();
    _root.loop1.attachSound("loop1");
    _root.loop1.setVolume(0);
    _root.loop1.start(0, 999);
}
onClipEvent (enterFrame) {
    if (i<=25) {
        _root.loop1.setVolume(i++);
    }
}
Avatar billede kragekjaer Praktikant
12. juli 2004 - 16:17 #4
Hvorfor stiller du samme spørgsmål igen?
Avatar billede snigeren Nybegynder
12. juli 2004 - 16:33 #5
mest fordi jeg troede det var for besværligt at lave en fadein i det script jeg havde pastet ind siden der ikke var nogen der havde svaret på det første spg. Så ville jeg lige finde ud af, hvordan man laver et fadein script som ikke nødvendigvis, havde med det kæmpe lange preloade script at gøre. Det var ikke for at komme foran i køen igen, hvis det var det du troede =) 

Det sker også at jeg laver et spørgsmål, der er skrevet lidt for kryptisk til at folk er helt sikre på hvad jeg mener. I sådanne tilfælde lukker jeg også mit gamle spg. og laver et nyt, der er lidt mere forståeligt.
Avatar billede mobius6 Juniormester
12. juli 2004 - 16:53 #6
total overkill if you ask me :)
(at skrive 100 linjer kode for at hente og styre en LYD)(KAN klare med 3 klik)

("fade in" ligger hvor den har ligget siden version 3.0)

:)
Avatar billede snigeren Nybegynder
12. juli 2004 - 17:03 #7
ahh fadein kan man jo kun sætte på hvis man smider lyden ind i en frame, hvor jeg nu syntes det er lidt federe at ha lyden liggende i Library.
Altså den måde jeg ellers ville hente en lyd ind ville være import til Library, derefter linkage->action script.
Avatar billede snigeren Nybegynder
12. juli 2004 - 17:42 #8
kan man ikke smide den her kode i roden af flash filen i en keyframe? jeg kan ikke lige få det til at virke,...

if (i<=25) {
        _root.loop1.setVolume(i++);
    }
hvis man ikke kan placere scriptet som sådanne i en keyframe, hvordan kan man så aktivere det i en keyframe, hvilken function skal man bruge?
Avatar billede mobius6 Juniormester
12. juli 2004 - 17:46 #9
alternativt kan du jo (det gør jeg ofte selv med små-lyde)
smide lyden en en frame (sætte properties som du vil have dem)i en ellers tom .swf og hente den (swuffen) ind dynamisk i din main-movie. så kan du scripte alt det du vil i lib. og stadig have "hands-on" op grund-lyden.

...anyway der er muligheder nok :)
Avatar billede snigeren Nybegynder
12. juli 2004 - 18:01 #10
hmm skørt,.. jeg har lavet en fil med det script asgrone skrev. Den fil virker også fint hvis jeg tester den,.. men hvis jeg henter den ind fra en anden .swf kommer der ikke noget lyd? mega underligt og jeg har skiftet alle _root ud med _parent.

Har du en idé om hvad jeg gør forkert mobius6?
Avatar billede mat Nybegynder
12. juli 2004 - 18:53 #11
prøv at skrive new Sound(this); istedet for new Sound();
Avatar billede snigeren Nybegynder
13. juli 2004 - 16:04 #12
uhm det virker fint med new Sound(this);
hvad er det lige præcis "this" gør i denne sammenhæng? jeg har åbenbart aldrig rigtig fattet at bruge "this".

en anden ting,.. når jeg henter lyd.swf ind i en anden .swf kan jeg ikke lige få lov at styre volumen?
jeg henter lyd.swf ind sådanne her: loadMovie ("flash/lyd.swf", musik_mc);
og lyd.swf:
// fadein
onClipEvent (load) {
    i = 0;
    lyd = new Sound(this);
    lyd.attachSound("lyd");
    lyd.setVolume(0);
    lyd.start(0, 999);
   
}
onClipEvent (enterFrame) {
    if (i<=100) {
        lyd.setVolume(i++);
    }
}
hvorfor kan jeg ikke styre setVolume med:
musik_mc.lyd.setVolume(0);
eller
stop sound eller noget?

eller hvad gør jeg forkert, man kan selvfølgelig styre lyden
Avatar billede mat Nybegynder
13. juli 2004 - 17:57 #13
Nu har du det jo på et movieclip i din eksterne swf, så der må være et led mere i din sti?

musik_mc.clip.lyd.setVolume(0);

this, betyder at du knytter lyden til pågældende timeline.
Avatar billede snigeren Nybegynder
13. juli 2004 - 21:07 #14
hmm jeg syntes ikke rigtig jeg kan få lov til at røre ved den lyd... her er hele scriptet for hoved .swf´en:
this.createEmptyMovieClip("musik_mc", 29);

sound_btn.onRelease = function(){
    musik_mc.lyd_mc.lyd.setVolume(0);
}

loadMovie ("sound_test.swf", musik_mc);

stop();

og her er scriptet på det mc i lyd .swf´en:
// fadein
onClipEvent (load) {
    i = 0;
    lyd = new Sound(this);
    lyd.attachSound("lyd");
    lyd.setVolume(0);
    lyd.start(0, 999);
   
}
onClipEvent (enterFrame) {
    if (i<=100) {
        lyd.setVolume(i++);
    }
}

jeg kan ikke lige sådan uden viddere få det til at virke,..

Er der ikke en måde hvorpå man kan undgå at placere de scripts på et mc og derved spare et ekstra led?
Avatar billede mat Nybegynder
14. juli 2004 - 13:52 #15
Du kan placere det i hovedtidslinien istedet for på et mock-clip:

i = 0;
lyd = new Sound(this);
lyd.attachSound("lyd");
lyd.setVolume(0);
lyd.start(0, 999);

this.onEnterFrame = function() {
if (i<=100) {
        lyd.setVolume(i++);
    }
}

...det brude give nogenlunde samme resultat
Avatar billede snigeren Nybegynder
30. september 2004 - 10:07 #16
ehem,.. er der ikke noget med at man skal lukke sine spørgsmål? :P
ey mat smider du ikke oxo lige et svar så får I 10 poijnt hver =D

Jeg kan ikke engang huske om jeg fik løst problemet =)

/Snig
Avatar billede mat Nybegynder
30. september 2004 - 11:43 #17
tjoh :)
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

IT-JOB

Politiets Efterretningstjeneste

AI/ML udvikler i PET

Netcompany A/S

IT Consultant

Kræftens Bekæmpelse

IT-driftsleder