Toon posts:

[Actionscript] Wat is er mis met deze loop

Pagina: 1
Acties:

Verwijderd

Topicstarter
z=0;
a=0;
function do79() {
while (a<5) {
if (z[a].getValue() == true) { i++; }
a++;
}
if (i>3) { play; }
}

z[a] zijn checkboxes, maar i is nooit > 3 zelfs als ik ze allemaal aanvink

  • RSchellhorn
  • Registratie: Augustus 2001
  • Laatst online: 09:33
Bedoel je javascript ?
z=0 en z[a], dat zal wel niet helemaal kloppen neem ik aan.

"Ik heb zo veel soep gegeten, dat kan een mens niet aan. Ik heb zo veel soep gegeten, kan bijna niet meer staan. Ik zat daar maar te slurpen achter die grote kop en als ik bijna klaar was, dan schepten ze weer op!" (Hans Teeuwen)


Verwijderd

Topicstarter
ow ja ik heb het al in i=0; veranderd maar dat hat natuurlijk geen baat. Het is Flash Actionscript

[ Voor 16% gewijzigd door Verwijderd op 22-08-2003 20:04 ]


  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Nee ... er staat toch actionscript... :?
(Maar je opmerking is op zich wel okee ;) )

Weet je zeker dat je met z[a] de checkbox goed aanspreekt? Zit die checkbox in dezelfde movieclip? Doe eens een trace (z[a])
Verder moet je misschien die i expliciet even op 0 zetten voordat je aan de while begint.

Inderdaad, je zet eerst die z op 0 en spreekt het vervolgens aan als object :?

* beetle71 vraagt zich af: 'Hoe zit het met de scope van variabelen in actionscript? '

[ Voor 23% gewijzigd door beetle71 op 22-08-2003 20:10 ]


  • RSchellhorn
  • Registratie: Augustus 2001
  • Laatst online: 09:33
EDIT: dus geen javascript, sorry, naja wellicht toch zinnig...


code even herschreven... lijkt mij te kloppen...

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
i=0;

function do79() {
    for (var a = 0; a < 5; a++) {
        if (z[a].checked) {     // lijkt me makkelijker
            i++;
        }
    }
    if (i>3) {
        //play;
    }
}

doe anders tussen de 'if' een alert(a)

[ Voor 23% gewijzigd door RSchellhorn op 22-08-2003 20:13 . Reden: Gaat dus NIET om JS, sorry... ]

"Ik heb zo veel soep gegeten, dat kan een mens niet aan. Ik heb zo veel soep gegeten, kan bijna niet meer staan. Ik zat daar maar te slurpen achter die grote kop en als ik bijna klaar was, dan schepten ze weer op!" (Hans Teeuwen)


Verwijderd

Topicstarter
trace(z[a]) geeft 5x undefined.

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Verwijderd schreef op 22 August 2003 @ 20:42:
trace(z[a]) geeft 5x undefined.
Dan is de referentie 'z' naar je checkbox niet in orde dus. ff uit mijn hoofd, dan moet er volgens mij de naam van de movieclip waar ie in staat voor en als dat de main timeline is moet het _root.z worden. (Mmmm, mijn actionscripting is alweer een tijdje op non actief.... :| )

  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
hoe wordt z eigenlijk gedefineerd?

Verwijderd

Topicstarter
met _root.z geeft de trace hetzelfde, undefined. Hoe defineer ik het eigenlijk?? Ik heb nu in de component <object name> veld z0 t/m z45 gezet..

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 21-08 17:05
Mmm, ik heb eea nog eens even bekeken in MX, maar zover ik kan vinden kun je chechboxen wel een naam geven, maar niet toewijzen aan een array zoals jij doet.

Zo zou het wel moeten kunnen:

Maak een movieclip met de gewenste naam (voor het gemak even 'MyMC') zet daarin jouw checkboxen en geef die elk een unieke naam (MyCB1 t/m 5).

Je kunt dan de functie als volgt maken:
Flash ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function do79(){
    i=0;
    if(_root.MyMC.MyCB1.getValue()){
        i++;
    }
    if(_root.MyMC.MyCB2.getValue()){
        i++;
    }
    if(_root.MyMC.MyCB3.getValue()){
        i++;
    }
    if(_root.MyMC.MyCB4.getValue()){
        i++;
    }
    if(_root.MyMC.MyCB5.getValue()){
        i++;
    }
    if(i>3){
        play();
    }
}


Waarbij ik er even vanuit ben gegaan dat die MyMC in de root timeline staat.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:01

crisp

Devver

Pixelated

z0 != z[0] natuurlijk

ws werkt dit wel als je als z0 - zx nummert:

code:
1
_root.movieclip['z'+i]

Intentionally left blank

Pagina: 1