Avatar billede baitianlong Nybegynder
30. juli 2002 - 15:58 Der er 21 kommentarer og
1 løsning

eval + løkke

Kan dette ikke bruges ?

onClipEvent(load) {
    mc = 0;
}
onClipEvent(enterFrame) {
    _root.eval("tree" add mc)._alpha = 25;
    mc++;
}

Hvordan skal det så se ud ?
Avatar billede baitianlong Nybegynder
30. juli 2002 - 15:59 #1
Den skal jo bare...

_root.tree0._alpha = 25;
_root.tree1._alpha = 25;
_root.tree2._alpha = 25;

og så videre....
Avatar billede mat Nybegynder
30. juli 2002 - 16:16 #2
kan du ikke bare:

onClipEvent(load) {
    mc = 0;
}
onClipEvent(enterFrame) {
    _root["tree"+mc]._alpha = 25;
    mc++;
}


..eller har jeg misforstået noget ???
Avatar billede barklund Nybegynder
30. juli 2002 - 16:16 #3
En af følgende:

_root["tree"+mc]._alpha = 25;
eval("_root.tree"+mc)._alpha = 25;
eval("_root.tree"+mc+"._alpha") = 25;

Og så bruger vi "+" til at konkatenere strenge med, ikke? :o)

/Barklund
Avatar billede barklund Nybegynder
30. juli 2002 - 16:17 #4
Arh damn.... 7 sekunder for sent... :o(
Avatar billede mat Nybegynder
30. juli 2002 - 16:21 #5
:)
Avatar billede baitianlong Nybegynder
30. juli 2002 - 16:25 #6
Tak for hjælpen. Mat's virker, men jeg synes jeg havde fundet noget lign. i en af dine gamle scripts til mig, Barklund "star add i" ??

Men tak for hjælpen til begge. Det er jo efterhånden sjældent at legenden skal have hjælp (o;
Avatar billede baitianlong Nybegynder
30. juli 2002 - 16:27 #7
Hvornår skal man bruge [] og hvornår eval(), til at sætte variabler sammen ???
Avatar billede mat Nybegynder
30. juli 2002 - 16:35 #8
det kan barklund sikkert komme med en lang forklaring på men jeg kan desværre ikke :/

jeg bruger aldrig eval, syntes ikke rigtig at jeg har haft brug for at gøre det på andre måder end den ovennævnte.

smider lige et svar også :)
Avatar billede barklund Nybegynder
30. juli 2002 - 16:46 #9
tja... kender du ikke stien til objektet men skal danne den dynamisk og den både kan være relativt eller absolut, så skal du bruge eval():

Eksempel:

function setVariableThis(path, var, value) {
    this[path][var] = value;
}
setVariableThis("_parent","something","else"); //virker
setVariableThis("subclip","something","else"); //virker
setVariableThis("_root.subclip","something","else"); //virker ikke
setVariableThis("_level10","something","else"); //virker ikke

function setVariableRoot(path, var, value) {
    _root[path][var] = value;
}
setVariableThis("subclip","something","else"); //virker
setVariableThis("subclip.sub2","something","else"); //virker
setVariableThis("_parent","something","else"); //virker ikke
setVariableThis("this","something","else"); //virker ikke
setVariableThis("_root.subclip","something","else"); //virker ikke
setVariableThis("_level10","something","else"); //virker ikke

function setVariableEval(path, var, value) {
    eval(path)[var] = value;
}
setVariableThis("subclip","something","else"); //virker
setVariableThis("subclip.sub2","something","else"); //virker
setVariableThis("_parent","something","else"); //virker
setVariableThis("this","something","else"); //virker
setVariableThis("_root.subclip","something","else"); //virker
setVariableThis("_level10","something","else"); //virker

Se, den sidste kan alt!!

Og den kan også være hurtigere - det var den i hvert fald i F5, men ikke i MX...

/Barklund :o)




Så kan den kaldes med alt:
Avatar billede barklund Nybegynder
30. juli 2002 - 16:48 #10
Bortset fra at funktionskaldene efter de to sidste funktioner stadig hedder "This", så er eksemplet da meget godt :o)

De skal selvfølgelig kalde hhv. "setVariableRoot" og "setVariableEval"...
Avatar billede barklund Nybegynder
30. juli 2002 - 16:49 #11
Mht. "add" så er det flash4-syntaks for at konkatenere strenge... men det er via jo kommet over nu, ikke?

Følgende virker jo også:

SetProperty("/tree" add i, _alpha, 25);

Men det er sgu for gammelt... :o)
Avatar billede mat Nybegynder
30. juli 2002 - 16:50 #12
barklund > vil du have nogen af de point jeg fik her? du fortjener næsten lidt for dit arbejde :)
Avatar billede baitianlong Nybegynder
30. juli 2002 - 16:56 #13
Ja, tak for "lærestregen" (o;
Her er årsagen til mit forsøg... Et udklip af et gammelt script fra dig:


        i = 0;
        while (i--) {
            this.duplicateMovieClip("star_" add i, -i);
        }
Avatar billede barklund Nybegynder
30. juli 2002 - 17:12 #14
Forhåbentlig ikke... for while-løkken kører jo aldrig :o)

("i" starter på nul, og "i--" returnerer værdien af "i" før opdateringen, som jo er nul, som evalueres til false...)
Avatar billede barklund Nybegynder
30. juli 2002 - 17:13 #15
>> mat

Det er okay... du svarede jo rigtigt og hurtigst... :o)
Avatar billede mat Nybegynder
30. juli 2002 - 17:19 #16
oki så beholder jeg de væmmelige point :P
Avatar billede baitianlong Nybegynder
30. juli 2002 - 17:20 #17
Det ved jeg sgu ikke, Barklund. Her er hele dit script fra dengang. Det virkede da efter hensigten:

onClipEvent (load) {

    if (_name eq "star") {

        _visible = 0;
        maxdepth = 400;
        i = 0;
        while (i--) {
            this.duplicateMovieClip("star_" add i, -i);
        }
        popInterval = 5;
        _root.width = 760;
        _root.height = 400;
    } else {
        var h = _root.height;
        var w = _root.width;
        _x = w/2+200*Math.random()-100;
        _y = h/2+200*Math.random()-100;
        var angle = Math.atan2(_y-h/2, _x-w/2);
        var len = 5;
        step_x = len*Math.cos(angle);
        step_y = len*Math.sin(angle);
    }
   
}
onClipEvent (enterFrame) {
    if (_name eq "star") {
        i = (i%maxdepth)+1;
        this.duplicateMovieClip("star_" add i, -i);
    } else {
        _x += step_x;
        _y += step_y;
        _xscale += 3;
        _yscale += 3;
    }
}
Avatar billede barklund Nybegynder
30. juli 2002 - 17:31 #18
Yup.... og "i" i toppen indikerer hvor mange stjerner, du ville starte med, og når "i" er 0, så starter du med nul, for løkken kører som sagt overhovedet ikke :o)
Avatar billede barklund Nybegynder
30. juli 2002 - 17:32 #19
Og som du kan se brugte jeg stadig gamle flash4-ting dengang... er blevet klogere siden :o)
Avatar billede barklund Nybegynder
30. juli 2002 - 17:36 #20
Forresten løj jeg jo tidligere...

Man kan kun bevæge sig et level i dybden med [] kontra eval(), så:

setVariableRoot("subclip.sub2","something","else");

Virker derfor ikke...
Avatar billede barklund Nybegynder
30. juli 2002 - 17:36 #21
Så du skal også bruge eval(), når dybden kan variere... Dog ville det i sådanne tilfælde være nemmere at sende en direkte ref til mc, men situationen kan opstå... :o)
Avatar billede baitianlong Nybegynder
30. juli 2002 - 17:41 #22
Det var tider (o; "forståelige" scripts !!

OK, Barklund. Tak for infoen, håber jeg fatter at bruge den (o;
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