[flash] MovieClip vergelijken in if-statement

Pagina: 1
Acties:

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
Oke, ik ben volgens mij niet echt een held in het uitleggen van dit soort dingen aan mensen die het nog nooit onder ogen hebben gehad.

Ik heb een movieclip genaamd phKarel. Als actionscript heb ik op deze movieclip de volgende code geplakt:

code:
1
_parent.movement(this, "workshop_fijnzand", false, false);


Het gaat verder alleen om het eerste argument wat we meegeven. this reffereert naar de movieclip phKarel waar we in werken. movement() is een eigen gedefinieerde functie in een extern AS bestand die ik include in een van de layers in de Stage.

In de functie movement() wil ik een if-lus maken die controleert met welke movieclip we te maken hebben, want dat kunnen meerdere zijn (er zijn meer movieclips waar ik dezelfde functie aanroep en ook weer this meegeef als eerste argument). Een beetje zoals dit voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
if(mc == "_level0.phKarel")
{
    trace("karel");
    phKarel.isInTween = 1;
}
else if(mc == "_level0.phKana")
{
    trace("kana");
    phKana.isInTween = 1;
}


Dit zou een mooi stukje code zijn, maar het werkt niet. Kennelijk kun je de movieclip niet vergelijken op deze manier. Mijn vraag is nu, hoe wel?
Wat ik er uiteindelijk mee wil is namelijk dat ik een bepaalde MC kan setten als zijnde 'tweening'. Dit tweenen doe ik namelijk verderop in de functie met een tween class die in Flash zelf zit. Tijdens het tweenen mag de gebruiker niet nog een opdracht geven, want dat brengt de tween in de war. Om dit te voorkomen wil ik zolang de tween loopt alle acties 'locken'. Dit wil ik dus doen door bij alle acties te checken of de MC aan het tweenen is of niet (isInTween). Zo niet, ga verder. Zo wel, negeer het commando.

Dus: hoe check je of een bepaald argument een bepaalde MC bevat?

  • Acolyte
  • Registratie: Oktober 2002
  • Laatst online: 28-08-2024
Weet je wat, laat maar :P

de truc was dat je een property van de MC moet aanroepen, in dit geval _name

dus:
code:
1
2
3
4
if(mc._name == "naam")
{
    ....
}


werkt wel. Problem solved.

  • sanderb
  • Registratie: November 2000
  • Laatst online: 02:13
else if(mc == "_level0.phKana")
werkt inderdaad niet.

else if(mc == _root["phKana"])
zou wel gewerkt hebben, maar je oplossing om de _name te vergelijken werkt natuurlijk ook.

" A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. " - Douglas Noel Adams