Avatar billede goldeneyes Nybegynder
21. september 2004 - 10:09 Der er 13 kommentarer og
1 løsning

slideshow skifter ikke billede

Jeg har ved hjælp af artiklen:
http://eksperten.dk/artikler/236

Lavet et dynamisk slideshow med en fade-effekt.
Problemet er bar at den viser det første billede (med start-fade), men bliver derefter ved billedet.
Avatar billede goldeneyes Nybegynder
21. september 2004 - 10:19 #1
Hvis jeg i stedet forden automatiske funktion indsætter en knap der kalder det næste billede, virker det perfekt.

Hvordan får jeg timeren til at virke?

on(release){
    showImage(currentNum+1);
    }
Avatar billede rohaje Nybegynder
21. september 2004 - 10:39 #2
//to movieclips med navn "screen1" og "screen2"
stien="minMappe/metabillednavn"
antPict = 2;
interval = 40;
fadeSpeed = 30;
var my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadComplete = function(target_mc) {
    if (s == 1) {
        s = 2;
        gs = 1;
    } else {
        s = 1;
        gs = 2;
    }
    if (n<antPict) {
        n++;
    } else {
        n = 0;
    }
    count = 0;
    klar = true;
    //
};
my_mcl.addListener(myListener);
n = 0;
s = 1;
loadMovie(stien+n+".jpg", "_root.screen"+s);
n++;
s = 2;
my_mcl.loadClip(stien+n+".jpg", "_root.screen"+s);
function myTrace(t) {
    trace(t);
}
function counting() {
    if (klar) {
        myTrace(count);
        if (count<interval) {
            count++;
            //myTrace("loadNext");
        } else {
            _root["screen"+s]._alpha += (-40-_root["screen"+s]._alpha)/fadeSpeed;
            if (_root["screen"+s]._alpha<0) {
                klar = false;
                count = 0;
                _root["screen"+s].swapDepths(_root["screen"+gs]);
                _root["screen"+s]._alpha = 100;
                my_mcl.loadClip("cover/sims0"+n+".jpg", "_root.screen"+s);
            }
        }
    }
}
onEnterFrame = function () {
    counting();
};
Avatar billede goldeneyes Nybegynder
21. september 2004 - 10:44 #3
Hm...
To movieclip?!?
Avatar billede rohaje Nybegynder
21. september 2004 - 10:50 #4
du kan lave to tomme movie clips med instance navnene eller

indsætte denne kode i starten

_root.createEmptyMovieClip("screen1",1);
_root.createEmptyMovieClip("screen1",2);

hele koden skal ligge på en keyframe i hoved tidslinien
Avatar billede rohaje Nybegynder
21. september 2004 - 10:51 #5
Jeg har ikke set det dias-show du arbejder med,, dette er for bunden
Avatar billede goldeneyes Nybegynder
21. september 2004 - 10:53 #6
Det har jeg gjort nu.
Men kan kun se et billede, og den skifter ikke mellem billederne....
Avatar billede goldeneyes Nybegynder
21. september 2004 - 10:54 #7
Sådan ser koden til mit slideshowud:
speed = 10;
path = "images/";
interval = 3000;
automatic = true;
this.loadImages = function(num) {
    this.maxNum = num;
    this._visible = false;
    for (i=1; i<=num; i++) {
        this.createEmptyMovieClip("img"+i, i);
        this["img"+i].loadMovie(path+i+".jpg");
    }
    this.onEnterFrame = function() {
        loadedBytes = 0;
        totalBytes = 0;
        gotTotal = true;
        for (i=1; i<=num; i++) {
            loadedBytes += this["img"+i].getBytesLoaded();
            totalBytes += this["img"+i].getBytesTotal();
            if (this["img"+i].getBytesTotal()<1) {
                gotTotal = false;
            }
        }
        if (loadedBytes == totalBytes && gotTotal) {
            delete this.onEnterFrame;
            for (i=1; i<=num; i++) {
                this["img"+i]._alpha = 0;
                this["img"+i]._visible = false;
            }
            this._visible = true;
            this.lastNum = 0;
            this.currentNum = 0;
            showImage(1);
        }
    };
};

this.showImage = function(num){
    this["img"+lastNum]._alpha = 0;
    this["img"+lastNum]._visible = false;
    this.lastNum = currentNum;
    if(num > this.maxNum){
        this.currentNum = 1;
    }else if(num < 1){
        this.currentNum = this.maxNum;
    }else{
        this.currentNum = num;
    }
    this["img"+currentNum]._visible = true;
    this["img"+currentNum]._alpha = 0;
    this["img"+lastNum]._alpha = 100;
    this.onEnterFrame = function(){
        this["img"+currentNum]._alpha += speed;
        this["img"+lastNum]._alpha -= speed;
        if(this["img"+currentNum]._alpha >= 100){
            delete this.onEnterFrame;
            if(automatic){
                slideshowTimer = setInterval(doSlideshow, interval);
            }
            this["img"+lastNum]._visible = false;
        }
    }
}
this.doSlideShow = function(){
    clearInterval(slideshowTimer);
    showImage(currentNum+1);
}

//Her startes slideshowet - med 4 billeder
loadImages(6);
Avatar billede rohaje Nybegynder
21. september 2004 - 11:19 #8
_root.createEmptyMovieClip("screen1",2);
_root.createEmptyMovieClip("screen2",1);
stien="cover/sims0"
antPict = 2;
interval = 40;
fadeSpeed = 30;
var my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadStart=function(target_mc){
    trace(target_mc);
};
myListener.onLoadComplete = function(target_mc) {
    if (s == 1) {
        s = 2;
        gs = 1;
    } else {
        s = 1;
        gs = 2;
    }
    if (n<antPict) {
        n++;
    } else {
        n = 0;
    }
    count = 0;
    klar = true;
    trace(klar );
    trace(count);
    //
};
my_mcl.addListener(myListener);
n = 0;
s = 1;
loadMovie(stien+n+".jpg", "_root.screen"+s);
n++;
s = 2;
my_mcl.loadClip("http://www.rohaje.dk/"+stien+n+".jpg", "_root.screen"+s);
trace(n + "  " + s);
function myTrace(t) {
    trace(t);
}
function counting() {
   
    if (klar) {
        myTrace(count);
        if (count<interval) {
            count++;
            //myTrace("loadNext");
        } else {
            _root["screen"+s]._alpha += (-40-_root["screen"+s]._alpha)/fadeSpeed;
            if (_root["screen"+s]._alpha<0) {
                klar = false;
                count = 0;
                _root["screen"+s].swapDepths(_root["screen"+gs]);
                _root["screen"+s]._alpha = 100;
                my_mcl.loadClip("http://www.rohaje.dk/"+stien+n+".jpg", "_root.screen"+s);
            }
        }
    }
}
onEnterFrame = function () {
    counting();
};
Avatar billede rohaje Nybegynder
21. september 2004 - 11:21 #9
der var lige et par fejl i min kode,,
de to mivie clips skal lige bytte depth fra start og så har jeg ændret den relative sti til en absolut,, det virker bedre efter min erfaring med loadClip
Avatar billede goldeneyes Nybegynder
21. september 2004 - 11:25 #10
Perfekt... Det virker.
Men hvorfor har du to movieclip?!? (screen1 og screen2)
Avatar billede rohaje Nybegynder
21. september 2004 - 11:27 #11
Min loader et billede af gangen,, når billedet er loadet begynder den at fade ind og når den er fadet ind begynder den  nedtælling  til næste billede
Avatar billede rohaje Nybegynder
21. september 2004 - 11:27 #12
den loader i den der ligger nerderst når det er loadet ind sætter den alpha til 0 og ligger den oven på og begynder at fade ind
Avatar billede goldeneyes Nybegynder
21. september 2004 - 12:49 #13
Selvfølgelig... Meget logisk.
Smider du et svar?
Avatar billede rohaje Nybegynder
21. september 2004 - 12:55 #14
ok- her er et svar, glad for at du fik det til at virke
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