timäää
Erfahrenes Mitglied
Ich hab ein ganz seltsames Problem. In einer As 2.0 Klasse habe ich folgende Funktion definiert, die in jedem Frame einmal aufgerufen wird. Im Grunde führt diese function nur ein paar hittests aus. Da ich die Funktion z.Z. noch Teste werden auch nur 2 MCs per Hittest überprüft. Da diese sich auch nicht bewegen arbeitet die Funktion auch immer mit den gleichen Eingangswerten. Das was mich am meisten dabei wundert is, das die trace aufrufe im scipt andere werte ausgeben als die, die im Debugger angezeit werden...
Das interessante an der ganzen Sache ist allerdings noch, wenn man die Ausgabe über mehrere Frames verfolgt(die 4 zahlen beiden Frames sind jeweils von den 4 trace aufrufen):
Habt ihr ne Ahnung woran das Liegen könnte? Ich bin hier echt am Verzweifeln.
PHP:
function hitTest1(array1:Array,array2:Array):Array
{
var retArray:Array;
for(var arr1lauf in array1)
{
var obj1:MovieClip = _root.spielfläche[array1[arr1lauf].grafikZiel][array1[arr1lauf].grafikName];
for(var arr2lauf in array2)
{
var obj2:MovieClip = root.spielfläche[array2[arr2lauf].grafikZiel][array2[arr2lauf].grafikName];
var hpArray:Array = array1[arr1lauf].hitPoints;
var hit:Boolean = false;
for(var point in hpArray)
{
//So. ab hier wirds interessant.
var hitpoint = new Object(hpArray[point]);
trace(obj1._x); //die x koordinate des moviclips, gibt immer 10, was auch stimmt
trace(hpArray[point].x) //laut Debugger ist dieser Wert 0, sollte er auch eignetlich sein.
trace(hitpoint.x); // genau so hier
obj1.localToGlobal(hitpoint);
trace(hitpoint.x); //hier is der Ausgabewert 10, was er nach der Logik auch seien Sollte, im Debugger wird hitpoint.x allerdings immer noch als 0 gewertet...
trace("");
if(obj2.hitTest(hitpoint.x,hitpoint.y,true))
{
hit = true;
}
}
}
}
return retArray;
}
Das interessante an der ganzen Sache ist allerdings noch, wenn man die Ausgabe über mehrere Frames verfolgt(die 4 zahlen beiden Frames sind jeweils von den 4 trace aufrufen):
Code:
Frame 1
10
0
0
10
Frame 2
10
10
10
20
Frame 3
10
20
20
30
Frame 4
10
30
30
40