PDA

Volledige versie bekijken : if probleem + vraag


clan-kill3r
%Europe/Berlin %926 %2006, 22:14
als ik onderstaand scriptje test op een deur genaamd Cdeur1 dan krijg ik bij:
trace (["Cdeur"+i]);
Cdeur1 ,oftewel het correcte antwoord, maar vervolgens bij:
if (["Cdeur"+i] == "Cdeur1"){
trace ("checkdeurtest");
krijg ik helemaal geen trace, waarom niet?

dit is totale script:

function checkdeur() {
for (var i = 1; i<deurenX; i++) {
if (_root["Cdeur"+i].hitTest(Tork.hitvlak)) {
trace (["Cdeur"+i]);
if (["Cdeur"+i] == "Cdeur1"){
trace ("checkdeurtest");
}
}
}
}
setInterval(checkdeur, 1000);

verder wil ik een scriptje maken wat het doel regelt van een deur, bij de ene moet b.v. de _X en _y van een MC worden aangepast en bij de ander moet ik naar de volgende frame.

hoe kan ik dit het beste doen

ik heb nu een Adeur = [Cdeur]+i
zodat Adeur de deur naam krijgt, maar dan, een functie met een listener voor enter?

Dauntless
%Europe/Berlin %929 %2006, 22:18
Probeer eens met eval() ipv [] ...

laurent
%Europe/Berlin %024 %2006, 00:35
wat je in je if statement fout doet is dat de 2e Cdeur een string is. Wat je volgens mij wilt is het volgende:
if (this["Cdeur"+i] == this["Cdeur1"]){
trace ("checkdeurtest");

clan-kill3r
%Europe/Berlin %476 %2006, 11:26
het had te maken met root.

function checkdeur() {
for (var i = 1; i<deurenX; i++) {
if (_root["Cdeur"+i].hitTest(Tork.hitvlak)) {
ActieDeurX = eval (["Cdeur"+i]);
}else{
ActieDeurX = "geen deur";
}
}
}
setInterval(checkdeur, 1000);



ActieDeur = new Object();
ActieDeur.onKeyDown = function () {
if (Key.isDown(Key.ENTER)){
if (ActieDeurX == _root.Cdeur1){
_root.tork._x = 300;
_root.tork._y = 140;
}
}
}

Key.addListener(ActieDeur);

dit werkt

denzione
%Europe/Berlin %481 %2006, 11:33
is [] hetzelfde als een eval?

theFlashWizard
%Europe/Berlin %513 %2006, 12:18
ongeveer wel, alleen omdat je voor de [] altijd een soort path moet zetten werkt die iets lastiger. enne :
eval (["Cdeur"+i])
is dus dubbel op he.. ;)