Avatar billede electrobeat_dk Nybegynder
14. februar 2007 - 18:28 Der er 1 løsning

loadSound - position

Hej

Jeg har en mp3 afspiller med en tilhørende playliste.

Selve afspilleren virker umiddelbart som den skal, og man kan fint hoppe rundt i et track via scrubber baren (function gen_bar). Men idet man skipper til et nyt track vil min scrubber bar ikke nulstille sig, og kører i stedet videre fra den position det forrige track havde inden man skippede track. Dog starter det nye track som det skal fra tiden 0

Jeg har 2 trace():
trace('sat tid: '+player_time_current); // ved skip track udskriver den 0
trace('position: '+player_stream.position); // ved skip track udskriver den tiden man hopper ud af forrige track

Hvis man hopper til en anden tid i det samme track udskriver begge trace() identiske og korrekte værdier

Skip til nyt track:
load_player(id);

Jeg har en anelse om at fejlen sker i linje 57 ved:
player_time_current = player_stream.position / 1000;

function load_player(id, no_autoplay)
{
    if(id)
    {
        for(var i = 0; i < plylst_id_arr.length; i++)
        {
            if(plylst_id_arr[i] == id)
            {
                delete mcPlayer_barScrubber.onEnterFrame;
               
                player_id_load = id;
                player_time_current = 0;
               
                player_stream.onLoad = function()
                {
                    player_time_total = player_stream.duration / 1000;
                }
               
                player_stream.loadSound("mp3/"+player_id_load+".mp3", true);
               
                if(no_autoplay) player_stream.stop();
                else ctrl_play(true);
               
                gen_bar();
               
                break;
            }
        }
    }
}

function ctrl_play(force_play)
{
    if(force_play) player_streamOn = false;
   
    if(player_streamOn)
    {
        player_stream.stop();
        player_streamOn = false;
        btnPlay.gotoAndStop(1);
       
        delete mcPlayer_barScrubber.onEnterFrame;
    }
    else
    {
        player_stream.start(player_time_current);
        player_streamOn = true;
        btnPlay.gotoAndStop(2);
       
        var percent = 0;
       
        trace('sat tid: '+player_time_current);
        trace('position: '+player_stream.position);
       
        mcPlayer_barScrubber.onEnterFrame = function()
        {
            player_time_current = player_stream.position / 1000;
           
            percent = Math.floor(player_time_current / player_time_total * 100);
            this._xscale = percent;
           
            txt.text = player_time_current;
           
            if(player_time_current >= player_time_total)
            {
                delete this.onEnterFrame;
            }
        }
    }
}

function gen_bar()
{
    var percent = 0;
   
    mcPlayer_barPreloader.onEnterFrame = function()
    {
        percent = Math.floor(player_stream.getBytesLoaded() / player_stream.getBytesTotal() * 100);
        this._xscale = percent;
       
        if(percent >= 100) delete this.onEnterFrame;
    }
   
    mcPlayer_btnScrubber.enabled = true;
   
    mcPlayer_btnScrubber.scrubber = mcPlayer_barScrubber;
    mcPlayer_btnScrubber.onPress = function()
    {
        delete mcPlayer_barScrubber.onEnterFrame;
       
        this.onEnterFrame = function()
        {
            if(this._xmouse < 0) this.scrubber._xscale = 0;
            else if(this._xmouse > this._width) this.scrubber._xscale = 100;
            else this.scrubber._xscale = ((this._xmouse * 100) / this._width);
        }
    }
   
    mcPlayer_btnScrubber.onRelease = mcPlayer_btnScrubber.onReleaseOutside = function()
    {
        delete mcPlayer_btnScrubber.onEnterFrame;
       
        player_time_current = (player_time_total / this._width) * this._xmouse;
       
        if(player_time_current > player_time_total) player_time_current = player_time_total;
        else if(player_time_current < 0) player_time_current = 0;
       
        ctrl_play(true);
    }
}
Avatar billede kragekjaer Praktikant
15. februar 2007 - 19:36 #1
du skal nulstille alle variable og delete alle onEnterFrame
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