Clip ansprechen in Abhängigkeit zu einer Randomzahl

Hallo Leute,

was ich machen will ist sicher kein großes Ding nur beschäftige ich mich noch nicht lange mit AS3 und deshalb weis ich nicht wie es geht.

Ich habe zehn MCs ( loch_1, loch_2... ) ich möchte sie jeweils in Abhängigkeit einer zuvor generierten Randomzahl ansprechen und z.B. unsichbar machen.

Dachte es könnte so funktinieren

var lochNr:Number = 1 + Math.floor(Math.random()*(9 - 1 + 1));

eval("loch_+lochNr")._visible=false;

...so klappt es aber leider noch nicht.

Hat jemand eine Idee.

Schöne Grüße

Martin
 
Hi,


ersetz die Zeile

eval("loch_+lochNr")._visible=false;
durch
this["loch_"+lochNr]._visible = false;

dann sollte es klappen.

Gruß
Matrix
 
Genau dass dacht ich mir irgendwann auch, aber scheinbar funktioniert es nicht.
Ich poste mal den kompletten code, wahrscheilich hat sich da irgendwo schon früher ein Fehler eingeschlichen.

bekomme immer folgende Fehlermeldungen:

1120: Zugriff auf eine nicht definierte Eigenschaft lochNr.

Ich poste hier mal den gesamten Code:

//stopps all clips
this.willi_jump_mc.stop();
this.jupo_fang_mc.stop();
this.start_mc.stop();


//Rollover/Rollout
this.start_mc.addEventListener(MouseEvent.MOUSE_OVER, rolloverStart);

function rolloverStart(evtMouseEvent):void {
start_mc.gotoAndStop(2);
};

this.start_mc.addEventListener(MouseEvent.MOUSE_OUT, rolloutStart);

function rolloutStart(evtMouseEvent):void {
start_mc.gotoAndStop(1);
};

//starts Game
this.start_mc.addEventListener(MouseEvent.CLICK, startGame);

function startGame(evtMouseEvent):void
{

//runs 10 times
var timer:Timer = new Timer(1000, 10);
timer.addEventListener(TimerEvent.TIMER, newJump);
timer.start();

function newJump(evt:TimerEvent)
{
/*decides which hole is aktive, needs to be in timer function, runs 10 times than round is over*/
var lochNr:Number = 1 + Math.floor(Math.random()*(9 - 1 + 1));
trace (lochNr);
}
this["loch_"+lochNr]._visible = false;

};

Schöne Grüße

Martin
 
Doch es muss gehen, wo bleibt sonst die dynamic. Es ging auch in AS2, zB. mit eval.
Ich glaube auch das Matrix, schon recht hat mit [ ] nur irgendwas in meinem Code scheint da nicht zu stimmen.

Jemand vlt noch ne Idee?

Vielen Dank.
 
Mit AS3 hab ich bisher noch nix gemacht, aber warum packst du die MCs nicht in ein Array und machst es einfach nach dem Schema: array[random]._visible = false;
 
Zurück