Avatar billede -42- Nybegynder
08. oktober 2003 - 14:24 Der er 28 kommentarer og
1 løsning

en lille player

Jeg skal have lavet en lille player der har skal afspille en række animationer der bliver loadet fra eksterne .swf'er som er numerisk navngivet.

Animationerne skal afspilles i den samme rækkefølge, men starte et tilfældigt sted i rækkefølgen.

Hvordan gøres det?


Jeg kan godt gøre det sådan, at jeg i slutningen af hver animation loader den næste, men det skal ikke gøres såden.

Det skal laves sådan, at animationerne ikke skal editeres, men at man blot skal ændre filnavnet, hvis man skal have ændret rækkefølgen?

Mit problem er at få playeren til at vide, hvornår en animation er færdig...

Håber en eller anden kan hjælpe mig på vej...
Avatar billede jakwag Nybegynder
08. oktober 2003 - 14:33 #1
du kan nemt se om animationene er færdig hvis det er en timeline animation.

hvis du loader i en target:

target_mc.onEnterFrame = function(){
if(this._currentframe = this.totalframes){
this.loadMovie("next.swf");
}
}

f.eks.

det samme kan gøres med level.

Har du osse problemer med at få valgt en tilfældig film?
Avatar billede jakwag Nybegynder
08. oktober 2003 - 14:34 #2
der skal naturligvis være == ikke =
Avatar billede -42- Nybegynder
08. oktober 2003 - 14:44 #3
Tak jeg kigger lige på det!
Avatar billede jakwag Nybegynder
08. oktober 2003 - 14:47 #4
du kan nok ikke bruge det direkte. Det skal ind i dit script på en eller anden måde...
Avatar billede -42- Nybegynder
08. oktober 2003 - 14:49 #5
klart
Avatar billede jakwag Nybegynder
08. oktober 2003 - 14:51 #6
loadMovie sletter ii øvrigt alle de methods du har lavet på den movie du loader den ind i.

så du skal nok lægge onEnterFramen et andet sted end på target.
Avatar billede -42- Nybegynder
08. oktober 2003 - 15:33 #7
PIS!! De kald jeg laver i de movies der bliver loadet virker heller ikke... Det må vel være fordi jeg bruger _root og ikke this  ?
Avatar billede jakwag Nybegynder
08. oktober 2003 - 15:40 #8
det er det sikkert.
Avatar billede -42- Nybegynder
08. oktober 2003 - 16:13 #9
Den loader den første tilfældigt, og jeg har fået ændre alt _root til this, men det virker ikke helt...

Jeg har en frame, med følgende script:
var first;
first=random(3);
first++;
trace(first);
loadmovie(first+".swf","holder");
holder.onEnterFrame = function(){
if(holder._currentframe == holder.totalframes){
    trace("slut");
holder.loadMovie("2.swf");
}
}


Den når aldirg at trace slut...
Avatar billede -42- Nybegynder
08. oktober 2003 - 16:16 #10
holder.loadMovie("2.swf");
denne linie skal selvfølgelig laves så det bliver den næste i rækkefølgen...
Avatar billede jakwag Nybegynder
08. oktober 2003 - 16:16 #11
var first;
first=random(3);
first++;
trace(first);
loadmovie(first+".swf","holder");
this.onEnterFrame = function(){
if(holder._currentframe == holder.totalframes){
    trace("slut");
holder.loadMovie("2.swf");
}
}

prøv det. hvis du ikke i forvejen har en onEnterFrame på this.
Avatar billede jakwag Nybegynder
08. oktober 2003 - 16:17 #12
selvfølig. men du skal osse flytte din onEnterFrame, det er derfor at den aldrig kommer til trace
Avatar billede -42- Nybegynder
08. oktober 2003 - 16:18 #13
den kommer heller ikke til slut nu...
Avatar billede jakwag Nybegynder
08. oktober 2003 - 16:29 #14
prøv:

var first;
first=random(3);
first++;
trace(first);
loadmovie(first+".swf","holder");
this.onEnterFrame = function(){
trace(holder._currentframe)
if(holder._currentframe == holder.totalframes){
    trace("slut");
holder.loadMovie("2.swf");
}
}

og sig hvad den siger
Avatar billede -42- Nybegynder
08. oktober 2003 - 16:41 #15
current frame: 333
Jeg smed lige en extra trace på:
var first;
first=random(3);
first++;
trace(first);
loadmovie(first+".swf","holder");
this.onEnterFrame = function(){
trace("current frame: "+holder._currentframe);
trace("total frames: "+holder.totalframes);
if(holder._currentframe == holder.totalframes){
    trace("slut");
holder.loadMovie("2.swf");
}
}

Her er et uddrag af outputtet, hvor den slutter den første animation
total frames:
current frame: 334
total frames:
current frame: 335
total frames:
current frame: 1



Det ser ud til den ikke kender totalframes
Avatar billede jakwag Nybegynder
08. oktober 2003 - 16:42 #16
der mangler en _ i totalframes:

_totalframes
Avatar billede -42- Nybegynder
08. oktober 2003 - 16:49 #17
Så kommer den ind i if'en ! -Jeg bliver nød til at smutte, men det kan være jeg vender måske tilbage imorgen...

Ses
Avatar billede -42- Nybegynder
08. oktober 2003 - 16:49 #18
...og Mange tak!!
Avatar billede jakwag Nybegynder
08. oktober 2003 - 16:50 #19
ses!
Avatar billede -42- Nybegynder
09. oktober 2003 - 11:46 #20
Okay nu er det fanme mærkeligt... Jeg har haft det til at køre, men nu vil funktionen slet ikke køre...

koden ser sådan her ud:

var first;
first=random(3);
first++;
trace(" first selected: "+first);
loadmovie("http://www.netop.com/school30_flash/"+first+".swf","holder");
this.onEnterFrame = function(){
    trace("in function");
    if((holder._currentframe == holder._totalframes) and holder._currentframe>2){
        trace("in if");
        first++;
        if (first>3){
            first=1;
            trace("in nested if, first was > 3");
        }
        holder.loadMovie("http://www.netop.com/school30_flash/"+first+".swf");
    }
}
Avatar billede -42- Nybegynder
09. oktober 2003 - 12:00 #21
lig et svar!
Avatar billede jakwag Nybegynder
09. oktober 2003 - 12:23 #22
fik du det til at virke? jeg har kursus i dag så jeg svare nok lidt langsomt...
Avatar billede -42- Nybegynder
09. oktober 2003 - 12:25 #23
Jeg fik det til at virke... men nu kommer den ikke ind i onEnterFrame funktionen... Mystisk
koden ser sådan her ud:

var first;
first=random(3);
first++;
trace(" first selected: "+first);
loadmovie("http://www.netop.com/school30_flash/"+first+".swf","holder");
this.onEnterFrame = function(){
    trace("in function");
    if((holder._currentframe == holder._totalframes) and holder._currentframe>2){
        trace("in if");
        first++;
        if (first>3){
            first=1;
            trace("in nested if, first was > 3");
        }
        holder.loadMovie("http://www.netop.com/school30_flash/"+first+".swf");
    }
}
Avatar billede jakwag Nybegynder
09. oktober 2003 - 12:27 #24
hvad med:

var first;
first=random(3);
first++;
trace(" first selected: "+first);
this["holder"].loadmovie("http://www.netop.com/school30_flash/"+first+".swf");
this.onEnterFrame = function(){
    trace("in function");
    if((holder._currentframe == holder._totalframes) and holder._currentframe>2){
        trace("in if");
        first++;
        if (first>3){
            first=1;
            trace("in nested if, first was > 3");
        }
        holder.loadMovie("http://www.netop.com/school30_flash/"+first+".swf");
    }
}

- bare et forsøg...
Avatar billede -42- Nybegynder
09. oktober 2003 - 12:30 #25
den looper bare den første som er loadet... Den kommer aldrig ikke ind i onEnter frame funktionen
Avatar billede jakwag Nybegynder
09. oktober 2003 - 12:31 #26
jeg kigger lige på det lidt senere...
Avatar billede -42- Nybegynder
09. oktober 2003 - 12:32 #27
ok
Avatar billede jakwag Nybegynder
09. oktober 2003 - 16:17 #28
du fandt ud af det ikke? : )
Avatar billede -42- Nybegynder
21. oktober 2003 - 09:31 #29
Mange tak for hjælpen!
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