Avatar billede nickyc Nybegynder
10. juli 2006 - 09:38 Der er 19 kommentarer og
1 løsning

Check på movieclip?

Hey alle...

Kan man checke på om et movieclip er færdig med at afspille sin tidslinje??

Altså noget ala:
if(movieclip er færdig med afspilning){
Så afspil næste movieclip
}
Avatar billede _k Nybegynder
10. juli 2006 - 10:16 #1
if(mc._currentframe >= mc._totalframes) { ..... }
Avatar billede maqhem Nybegynder
10. juli 2006 - 10:20 #2
ActionScript 2.0:

if(mc._currentframe == mc._totalframes){
    // mc har nået sin sidste frame
}

ActionScript 3.0:

if(mc.currentFrame == mc.totalFrames){
    // mc har nået sin sidste frame
}
Avatar billede maqhem Nybegynder
10. juli 2006 - 10:20 #3
Øv, kom for sent
Avatar billede nickyc Nybegynder
10. juli 2006 - 10:39 #4
Ok, men så når den har nået sin sidste frame, så skal den gå til et andet movieclip og afspille det?
Avatar billede maqhem Nybegynder
10. juli 2006 - 10:43 #5
ActionScript 2.0:

if(mc._currentframe == mc._totalframes){
    andet_mc.play();
}

ActionScript 3.0:

if(mc.currentFrame == mc.totalFrames){
    andet_mc.play();
}
Avatar billede nickyc Nybegynder
10. juli 2006 - 10:54 #6
thx for det, svar?
Avatar billede nickyc Nybegynder
10. juli 2006 - 10:59 #7
lige et enkelt spm til hvis det er ok ?

Sidder nemlig og skal lave en lille præsentation af noget.
Fx. Den skal starte med at logo fader ind, derefter er der en masse andre mc's der skal afspilles.
Dog ligger alt i første frame, bare smidt en som movieclips. Hvordan vil det være nemmest at styre rækkefølgen af hvordan de skal afspilles, og hvordan undgår jeg de ikke allesammen afspiller når jeg kører filmen, da de egentlig alle ligger i frame 1
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:10 #8
Lav en stop(); på alle, det skal starte med. Derefter skal der laves en stop(); på sidste frame i alle.
Så skal du kalde dem mc0, mc1, mc2 og så videre, hvor mc0 starter, og mc999 (hvis der da er så mange) slutter.

Så skriver du i frames AS:

var nt:Number = 0;
var num:Number = 0;
while(this['mc' + num + 1] != undefined){
    num++;
}
onEnterFrame = function():void {
    if(this['mc' + nt]._currentframe == 1){
        this['mc' + nt].play();
    }else if(this['mc' + nt]._currentframe == this['mc' + nt]._totalframes){
        if(nt < num){
            nt++;
        }else{
            //Nu er alle færdige
        }
    }
}
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:10 #9
*Lav en stop(); på alle. (det sidste skulle ikke med)
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:12 #10
Nej, hov, nu sover jeg sq da! Sådan hér:

Lav en stop(); på alle i første frame.
Avatar billede nickyc Nybegynder
10. juli 2006 - 11:15 #11
Hmm, er der ikke en nemmere måde, da det ikke vil give nogen mening mht til navngivningen af ens mc's?
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:17 #12
Jo, det giver da mening. Du efterspurgte en måde - hér er den.
Jeg vil ikke mene, du kan gøre det meget nemmere end ovensående :)
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:20 #13
"det ikke vil give nogen mening mht til navngivningen af ens mc's" - mener du, at det er meningsløst at navngive dine mcs? For det er det så absolut ikke. Du kan ikke holde styr på dem på nogen anden måde, og det er den eneste måde, at kontrolere dem på.

Var det dét, du mente?
Avatar billede nickyc Nybegynder
10. juli 2006 - 11:29 #14
Nej, mente fx, hvis jeg havde forskellige mc's med navne, altså fx logoMC, navMC, osv osv, Den måde kan man kende dem, men kan jeg jo ikke helt hvis de hedder mc01 mc02 mc03 osv osv...
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:34 #15
Nårh, så kan du gøre som dette hér:

var mcs:Array = new Array();
mcs.push('logoMC', 'navMC', 'tredjeMC', 'fjerdeMC', 'femteMC' /* etc. */);
var nt:Number = 0;
var num:Number = 0;
while(this[mcs[num + 1]] != undefined){
    num++;
}
onEnterFrame = function():void {
    if(this[mcs[nt]]._currentframe == 1){
        this[mcs[nt]].play();
    }else if(this[mcs[nt]]._currentframe == this[mcs[nt]]._totalframes){
        if(nt < num){
            nt++;
        }else{
            //Nu er alle færdige
        }
    }
}
Avatar billede nickyc Nybegynder
10. juli 2006 - 11:35 #16
Tak for det :-)
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:37 #17
slet :void

Den skal ikke være der
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:41 #18
Hér er lige en opdatering:


var mcs:Array = new Array();
mcs.push('logoMC', 'navMC', 'tredjeMC', 'fjerdeMC', 'femteMC');
var nt:Number = 0;
var num:Number = mcs.length;
    if(this[mcs[nt]]._currentframe == 1){
        this[mcs[nt]].play();
    }else if(this[mcs[nt]]._currentframe == this[mcs[nt]]._totalframes){
        if(nt < num){
            nt++;
        }else{
            //Færdig
        }
    }
}

Den anden er klodset
Avatar billede maqhem Nybegynder
10. juli 2006 - 11:43 #19
var mcs:Array = new Array();
mcs.push('logoMC', 'navMC', 'tredjeMC', 'fjerdeMC', 'femteMC');
var nt:Number = 0;
var num:Number = mcs.length;
onEnterFrame = function(){
    if(this[mcs[nt]]._currentframe == 1){
        this[mcs[nt]].play();
    }else if(this[mcs[nt]]._currentframe == this[mcs[nt]]._totalframes){
        if(nt < num){
            nt++;
        }else{
            //Færdig
        }
    }
}

Nej, hvor jeg sover!
Avatar billede nickyc Nybegynder
30. august 2006 - 12:54 #20
hvem ligger svar?
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