Avatar billede ieconfig Nybegynder
25. juli 2006 - 11:37 Der er 11 kommentarer og
1 løsning

for loop + variable problem

Ello ;-)

Først vil jeg lige pointerer at actionscript ik er min stærke side, så hvis det er helt skævt er det nok derfor.

Spm:
Jeg har en del knapper (knap1, knap2 osv) som jeg gerne ville kunne loope igennem så jeg ikke skulle tildele en action manuelt til dem alle sammen (30 ialt)

for(var i=1; i <= 30 ;i++){
knapvar = "knap" + i;
    //trace(knapvar)

    knapvar.onRollOver = function() {
        if (knapvar._currentframe != 3) {
            this.gotoAndStop("over");
        }
        }
}

(knapperne har instans name: knap1, knap2 osv.)

hermed skulle den lave 30 knapper med onRollOver vel ? :-)

På forhånd tak.
Avatar billede maqhem Nybegynder
25. juli 2006 - 11:42 #1
Jeg tillader mig lige, at sætte det lidt pænere op:

for(var I:Number = 1; i <= 30; i++) {
    this['knap' + i].onRollOver = function() {
        if(this._currentframe != 3) {
            this.gotoAndStop("over");
        }
    }
}
Avatar billede maqhem Nybegynder
25. juli 2006 - 11:42 #2
hov:

for(var i:Number = 1; i <= 30; i++) {
    this['knap' + i].onRollOver = function() {
        if(this._currentframe != 3) {
            this.gotoAndStop("over");
        }
    }
}
Avatar billede maqhem Nybegynder
25. juli 2006 - 11:45 #3
Du kan ikke få en variabel til, at gå til en frame eller bearbejde den. Derfor, hvis du vil gøre det på din måde med en variabel, skal det være:

for(var i:Number = 1; i <= 30; i++) {
    knapvar = 'knap' + i;
    this[knapvar].onRollOver = function() {
        if(this._currentframe != 3) {
            this.gotoAndStop("over");
        }
    }
}
Avatar billede maqhem Nybegynder
25. juli 2006 - 11:45 #4
... men drop den sidste, den er absolut ikke den smarteste!
- den anden er meget mere lige til :)
Avatar billede ieconfig Nybegynder
25. juli 2006 - 12:02 #5
Tak for svaret maqhem.

for(var i:Number = 1; i <= 1; i++) {
    this['knap' + i].onRollOver = function() {
        if(this._currentframe != 3) {
            this.gotoAndStop("over");
        }
    }
}

På scenen har jeg et movieklip (knap1).

Ved brug af ovenstående kode går min flash i "selvsving og siger at koden scriptet for flash til at køre langsomt" ... ?

Er det mig der gør noget forkert ?
Avatar billede maqhem Nybegynder
25. juli 2006 - 12:10 #6
Ja, du har lavet en fejl!

for(var i:Number = 1; i <= 1; i++) {

Denne er uendelig... Og det er ikke godt :)

Var der ikke 30 mcs? For så skal du da skrive 30 i din condition (i <= 1 vs. i <= 30)
Avatar billede maqhem Nybegynder
25. juli 2006 - 12:12 #7
... men skal du lave en kode til bare ét enkelt mc, kan du da bare skrive:

knap1.onRollOver = function() {
    if(this._currentframe != 3) {
        this.gotoAndStop("over");
    }
}
Avatar billede ieconfig Nybegynder
25. juli 2006 - 12:22 #8
;D det var bare for at teste at jeg kun brugte 1.
Tusinde tak maqhem - nu har jeg fået det til at virke.
Avatar billede maqhem Nybegynder
25. juli 2006 - 12:23 #9
Fedest :D
Held og lykke med resten af projektet!
Avatar billede ieconfig Nybegynder
25. juli 2006 - 12:37 #10
for(var i:Number = 1; i <= 9; i++) {
    this['knap' + i].onRollOver = function() {
        if(this._currentframe != 3) {
            this.gotoAndStop("over");
        }
    }
    this['knap' + i].onRollOut = function() {
          if(this._currentframe != 3) {
            this.gotoAndStop("link");
        }
    }
    this['knap' + i].onPress = function() {
        this.gotoAndStop("visited");
        mc_holder.gotoAndStop(i);
    }
}

ved godt at jeg har givet point.. nu ville jeg gerne flykke timeline i "mc_holder" ved onPress.. passende kunne jeg jo bruge i, sådan at knap1 = gotoAndStop(1), knap2 = gotoAndStop(2) .. men ovenstående sender alle knapper i til mc_holder frame 9 .. ?
Avatar billede maqhem Nybegynder
25. juli 2006 - 12:52 #11
Prøv, at udskifte

mc_holder.gotoAndStop(i);

med

mc_holder.gotoAndStop(this._name.split('knap')[1]);
- nogle gange er Flash lidt underlig. Test lige!
Avatar billede maqhem Nybegynder
25. juli 2006 - 12:53 #12
Eller

mc_holder.gotoAndStop(_root['knap' + i]._name.split('knap')[1]);
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