Hallo Community,
ich möchte in einer Funktion die Distanz von neu geladenen DAE Files checken.
Dafür lasse ich einen for loop laufen. Wenn das Objekt irgendeinem anderen Objekt in der Szene 'zu nahe" ist, soll der Loop nocheinmal ausgeführt werden.
Nun, ja, dabei gibt es dann ein Stapelüberlauf Problem, bzw. Flashplayer hängt sich auf. Aber es sind bis jetzt nich mehr als 4 Objekte, da müsste er doch bald alle 'platziert' haben?
Mhm, irgendwo habe ich wohl einen Gedankenfehler. Vielleicht, kann mir ja jemand von euch helfen.
Ich habe hier die Funtkion mal eingefügt:
ich möchte in einer Funktion die Distanz von neu geladenen DAE Files checken.
Dafür lasse ich einen for loop laufen. Wenn das Objekt irgendeinem anderen Objekt in der Szene 'zu nahe" ist, soll der Loop nocheinmal ausgeführt werden.
Nun, ja, dabei gibt es dann ein Stapelüberlauf Problem, bzw. Flashplayer hängt sich auf. Aber es sind bis jetzt nich mehr als 4 Objekte, da müsste er doch bald alle 'platziert' haben?
Mhm, irgendwo habe ich wohl einen Gedankenfehler. Vielleicht, kann mir ja jemand von euch helfen.
Ich habe hier die Funtkion mal eingefügt:
Code:
private function _checkDistance(asset3D:DisplayObject3D):void
{
// setting up the start positions for the letters
asset3D.x = Rnd.integer(-W_AREA/2, W_AREA/2);
asset3D.z = Rnd.integer( -D_AREA/2, D_AREA/2);
asset3D.y = -1000;
for each (var item:DisplayObject3D in scene.objects)
{
trace("\ndistance: " + item.distanceTo(asset3D));
if (item.distanceTo(asset3D) <= DIST)
{
trace("\t\titem is in distance: " + item);
_checkDistance(asset3D);
}
else
{
// applying the letter to our letter class
_letter.do3d = asset3D;
// adding the letter to the stage
scene.addChild(_letter.do3d);
//start the letters drop
_letter.init();
trace("\t\titem is out of distance: " + item);
}
}
}