J-C
Lounge-Member
und ich habe nochmal eine Frage 
einfach gesagt: wie kann ich auf das Ergebnis einer Funktion warten?
folgendes Problem: ich lasse Karten ziehen - funktioniert soweit alles - zZt aber alls gleichzeitig, und ich möchte, daß die nacheinander gezogen werden.
ich hatte mir gedacht, da ich das mit 2 tween-funktionen mache, daß ich "tween1.onMotionFinished" bzw "tween2.onMotionFinished" jeweils eine boolsche Variable auf "true" setze - und "außerhalb" in einer while-schleife solange nichts tue, bis diese beiden Variablen halt "true" sind - ergbnis ist - das script bleibt hängen ....
hier mal der auszug:
hier werden die "startkarten" gezogen
mit dieser Funktion
hier ist die Bewegung
einfach gesagt: wie kann ich auf das Ergebnis einer Funktion warten?
folgendes Problem: ich lasse Karten ziehen - funktioniert soweit alles - zZt aber alls gleichzeitig, und ich möchte, daß die nacheinander gezogen werden.
ich hatte mir gedacht, da ich das mit 2 tween-funktionen mache, daß ich "tween1.onMotionFinished" bzw "tween2.onMotionFinished" jeweils eine boolsche Variable auf "true" setze - und "außerhalb" in einer while-schleife solange nichts tue, bis diese beiden Variablen halt "true" sind - ergbnis ist - das script bleibt hängen ....
hier mal der auszug:
hier werden die "startkarten" gezogen
Code:
for(u=0;u<karten_Amount;u++){
SW_drawCard("Player_1",u,true);
SW_drawCard("Player_2",u,false);
}
mit dieser Funktion
Code:
function SW_drawCard(player,cardPlace,activePlayer)
{
/* hier passiert vorher noch einiges */
drawCardName = player+"_card_"+cardCounter;
duplicateMovieClip(_root.mc_cardTemplate, drawCardName, this.getNextHighestDepth());
// variablen, ob die Bewegung der Karte abgeschlossen ist
this[drawCardName].xMotionDone = false;
this[drawCardName].yMotionDone = false;
this[drawCardName].mc_cardBackground.gotoAndStop(arrCardTypes[arrCardToType[drawnCardID]]["cardType"]);
SW_drawCardFromPile(this[drawCardName],cardPositionX+(cardPlace*cardWidth)+(cardPlace*cardSpace),cardEndPositionY);
//////////////////////////////////////////////////////////////////////////////////
// warten, daß die Karte fertig gezogen wurde - stürzt ab?????
while(!this[drawCardName].xMotionDone && !this[drawCardName].yMotionDone)
{
if(this[drawCardName].xMotionDone && this[drawCardName].yMotionDone) break; // das hier zusätzlich nochmal probehalber eingebaut - bringt auch nichts
}
}
hier ist die Bewegung
Code:
function SW_drawCardFromPile(cardMC,Xpos,Ypos)
{
cardMC.xMotionDone = false;
cardMC.yMotionDone = false;
/* hier kommt die ganze Tweendefinition */
....
/**/
var XDrawTween = new mx.transitions.Tween(mc, "_x", easeType, beginX, endX, time, true);
var YDrawTween = new mx.transitions.Tween(mc, "_y", easeType, beginY, endY, time, true);
XDrawTween.onMotionFinished = function() { cardMC.xMotionDone = true;} // funktioniert eigentlich - wenn ich mir hier was ausgebn lasse, dann tut er das genau dann, wenn der Tween abgeschlossen ist
YDrawTween.onMotionFinished = function() { cardMC.yMotionDone = true;}
}
Zuletzt bearbeitet: