webForumDet fria alternativet

Hjälp med actionscript

Flash

3 svar · 281 visningar · startad av westman

Medlem sedan aug. 2004249 inlägg
Frågan#1

Gokväll,
jag håller på med en presentation i flash där jag nyligen lagt till bakgrundsmusik. För att göra övergångarna mjuka och fina så vill jag att musiken skall fade:as in och ut på olika ställen. Koden nedan har jag använt tidigare men då sköttes ljudet med knappar och det var endast 1 frame. Nu när jag lagt in koden i min nya flashfilm så fungerar det självklart inte... Hur skall jag göra? (Antar att jag behöver lägga in "höjningen" och "sänkningen" i loopar eller liknande, men hur gör jag det?)


myLoop = new Sound(myLoopMc);
myLoop.attachSound("myLoop01");
myLoopVolume=0; 
myLoop.setVolume(myLoopVolume);

this.onEnterFrame = function () { 
// 
// Fade In 
//
if (fadeIn01==1) {  
_root.myLoop.setVolume(myLoopVolume);  
myLoopVolume=myLoopVolume+5;

if (myLoopVolume>99) {
fadeIn01=0;
   } 
  } 
}

this.onEnterFrame = function () {
//
// Fade Out
//
if (fadeOut01==1) {  
_root.myLoop.setVolume(myLoopVolume);  myLoopVolume=myLoopVolume-5;

if (myLoopVolume<5) {  
_root.myLoop.stop("myLoop01");  
fadeOut01=0;
   }
 }
}

Detta lägger jag in på de ställen (de frames) som jag vill fade:a ut eller in:

// Fade In
fadeIn01=1
myLoop.start(0,999);

// Fade Out
fadeOut01=1

Tack på förhand!! :stud

Medlem sedan maj 2003750 inlägg
#2

Det fungerar inte därför att du tilldelar ju this.onEnterFrame 2ggr och då är det ju bara den sista (fadeOut) som gäller. ta och gör om dessa två till funktioner som tilldelar till this.onEnterFrame vid behov. Dessutom behöver du inte variablerna "fadeIn01" och "fadeOut01" använd "delete this.onEnterFrame;" istället.

Funktioner:

myLoop = new Sound(myLoopMc);
myLoop.attachSound("myLoop01");
myLoopVolume=0; 
myLoop.setVolume(myLoopVolume);

function fadeIn() 
{
    this.myLoop.start(0,999);
    this.onEnterFrame = function()
    { 
        // 
        // Fade In 
        //
        this.myLoop.setVolume(myLoopVolume);  
        myLoopVolume = myLoopVolume+5;

        if (myLoopVolume>99) 
            delete this.onEnterFrame;  
    } 
}

function fadeOut() 
{
    this.onEnterFrame = function()
    {
        //
        // Fade Out
        //
        _root.myLoop.setVolume(myLoopVolume);
        myLoopVolume=myLoopVolume-5;

        if (myLoopVolume<5) {  
            _root.myLoop.stop("myLoop01");  
            delete this.onEnterFrame;
       }
    }
}

Fade In:

fadeIn();

fadeOut

fadeOut();

/Mirandir

Medlem sedan aug. 2004249 inlägg
#3

hmm, d funkade inte heller. Den fade:ar inte, den stoppar musiken tvärt.

Medlem sedan aug. 2004249 inlägg
#4

vad är det för fel på koden, kan ngn sträcka ut en hjälpande hand??

264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)