So.., hab da mal schnell was gebastelt, was eigentlich funktionieren sollte, wenn ich dich richtig verstanden habe: kurze Erläuterung:
PHP-Code:
//Bild stoppen in Frame 1
stop();
//Punktestand wieder auf 0 zurück
punktestand = 0;
trace("Punktestand :"+punktestand);
//Zählernummer für Buttons mit 0 anlegen
nr = 0;
// Variable mc anlegen
mc = "Teil0";
//Variable Ziel anlegen
ziel = "Teil0Ziel";
//Variable zum überprüfen, welcher Button schon mal richtig abgelegt wurde
s = "richtig0";
// Variablen auf 0setzen
richtig1 = 0;
richtig2 = 0;
richtig3 = 0;
richtig4 = 0;
richtig5 = 0;
richtig6 = 0;
richtig7 = 0;
richtig8 = 0;
//
//Aktionen Antwort Button
bt_Antwort.onRelease = function() {
//Alle Buttons wieder auf einen Level bringen
Teil1.swapDepths(0);
Teil2.swapDepths(0);
Teil3.swapDepths(0);
Teil4.swapDepths(0);
Teil5.swapDepths(0);
Teil6.swapDepths(0);
Teil7.swapDepths(0);
Teil8.swapDepths(0);
//Buttons unsichtbar machen
Teil1._visible = false;
Teil2._visible = false;
Teil3._visible = false;
Teil4._visible = false;
Teil5._visible = false;
Teil6._visible = false;
Teil7._visible = false;
Teil8._visible = false;
gotoAndStop(2);
};
//Funktion zum draggen, damit du das nicht immer auf jedem Button neu machen mußt
//Auch wenns mal was zu ändern gibt, einfach hier für alle ändern
//Der Parameter der Funktion (nr) wird von den Buttons übergeben
function drag(nr) {
//Den aktuellen MC ermitteln
mc = "Teil"+nr;
trace("--------\n"+mc+" gedrückt");
//Den aktuellen MC draggen
this[mc].startDrag(true, 180, 0, 600, 350);
//und auf höheren Level bringen, damit er über die anderen "drüber zieht"
this[mc].swapDepths(1000);
}
//Funktion zum loslassen und Auswertung
//(nr)-Parameter kommt auch wieder vom Button
function pruefen(nr) {
trace("--------\nTeil"+nr+" losgelassen");
//Ermitteln welcher MC losgelassen wird
mc = "Teil"+nr;
//Den Ziel-MC ermitteln
ziel = "Teil"+nr+"Ziel";
//Variable zur Auswertung anlegen
s = "richtig"+nr;
//Aktuellen MC "fallen" lassen
this[mc].stopDrag();
//Wieder auf Level 0 setzen, damit der nächste wieder "drüber fliegen" kann
this[mc].swapDepths(0);
//Wenn richtig losgelassen wurde
if (eval(this[mc]._droptarget) == this[ziel]) {
trace("TREFFER Nr :"+nr);
trace("this[s] "+this[s]);
//und wenn aktueller Button noch nicht richtig war
//überprüfe ob z.B. richtig6 noch kleiner 1 ist
if (this[s]<1) {
//dann wird richtig6 der Wert 1 zugewiesen
this[s] = 1;
//Der Punktestand wird um 1 erhöht, weil ja 6 noch nicht probiert wurde
punktestand++;
trace("Punktestand :"+punktestand);
}
}
//Wenn nicht richtig losgelassen
else {
//und wenn der Button schon mal richtig war, wieder Punktabzug
if (this[s] == 1) {
//und z.B. richtig6 wieder auf 0 setzen, da ja die Richtige Antwort wieder versiebt wurde.
this[s] = 0;
// und natürlich wieder einen Punkt abziehen
punktestand--;
trace("Punktestand :"+punktestand);
trace("Falsch abgelegt Nr :"+nr);
}
}
}
// Ende function pruefen(nr)
und auf deine Button kommt nur noch folgendes:
PHP-Code:
//Button 1, hier in den Klammer ist die Nummer, die oben in der Funktion als (nr) ankommt, alles Klar ??
on (press) {
_parent.drag(1);
}
on (release) {
_parent.pruefen(1);
}
// Button 2
on (press) {
_parent.drag(2);
}
on (release) {
_parent.pruefen(2);
}
//usw..
//usw...
Es wird überprüft welcher Button der aktuelle ist, logischer Weise der, der gerade gedragt wird. Es wird überprüft, ob z.B. Teil6 schon mal richtig gelegen hat. Wenn Teil 6 richtig liegt, wird der Punktestand um 1 erhöht. Damit aber Teil 6 nicht noch mal "punkten" kann, wird das mit einer Variable abgefragt. ist die Variable richtig6 = 0 nicht mehr kleiner 1, dann hat sie schon den Wert 1 und kann nicht mehr den Punktestand addieren.
Ist sich ein User nun aber unsicher in seiner Antwort, und denkt, daß er doch Teil6 falsch platziert hat, wird sobald er Teil6 wieder falsch platziert, die Variable richtig6 wieder auf 0 gestzt(kann also wieder belegt werden) und der Punkt, den es für den vorherigen richtigen Platz von Teil6 gab, wird wieder abgezogen.
In Frame 2 einen onEnterFrame für das Textfeld war überflüssig, da es hier ja bei jedem EnterFrame nix zu aktualisieren gibt.
Auf deinen Buttons hab ich den Code auskommentiert, löschen kannst du ihn ja noch.
Wozu du allerdings eine Maupositionsabfrage für den drag gemacht hast, ist mir ein Rätsel. Wenn du draggen willst, ist ja in deinem Fall durch "this" gekennzeichnet, was gedraggt werden soll, und da das ganze ja im onRelaese steht, ist ja klar, wo die Maus sein muß, damits anfängt zu draggen.
Hoffe konnte erst mal weiter helfen, im Anhang die überarbeitete fla