

Anmelde-Formular

Panicpixel 29. Februar 2004, 21:11
Ich habe folgendes Script auf der Hauptzeitleiste:
_root.alleTeile = 0;
function weiter() {
if (_root.alleTeile == 16) {
gotoAndPlay(59);
}
}
_root.score = 0;
stop();
Auf meinen 16 MCs liegt:
onClipEvent (load) {
magdeburg_startX = _x;
magdeburg_startY = _y;
}
onClipEvent (mouseDown) {
if (this.hitTest (_root._xmouse, _root._ymouse, true)) {
this.startDrag (false);
}
}
onClipEvent (mouseUp) {
stopDrag ();
if (this.hitTest (_root.ziel_stadt_magdeburg)) {
setProperty("", _x, "600");
setProperty("", _y, "180");
_root.alleTeile++;
_root.weiter();
} else {
_x = magdeburg_startX;
_y = magdeburg_startY;
_root.score += 1;
}
}
Also, es soll zurückgesprungen und ein Fehler gezählt werden, wenn der MC nicht an der richtigen Position abgelegt wird ...
Das zurückspringen funktioniert auch. Allerdings zählt der Score ganz seltsam ... Erst 15 dann + 14, dann + 13 ... (und das auch, wenn der MC zurückspringt!?)
Und der Film läuft weiter, bevor alle 16 Teile an den Positionen verteilt sind!?
Die Scripts müssen sich ja wohl irgendwie beeinlussen/stören ...
Ich weiß nur grad gar nicht wie!???
Es wäre super, wenn jemand Rat weiß!!!
Lieben Gruß
Panicpixel
killerkarnickel 29. Februar 2004, 21:50
Hi Panicpixel!
Dein Problem ist, das jedesmal beim MouseUp JEDER der 16 MovieClips entweder _root.alleTeile++ oder _root.score+=1 macht.
Ich nehme mal an, das soll aber nur der, der gerade gedragged wurde.
Also solltest Du noch eine Variable einbauen, die checkt, ob der Clip gerade gedragged wurde.
Oder, falls Du mit Flash MX oder MX 2004 arbeitest, nimmst Du die Buttonevents onPress bzw onRelease/onReleaseOutside statt MouseDown und MouseUp. Die beziehen sich dann nur auf den einen Clip. Die mußt Du dann so verwenden (Beispiel):
this.onPress=function(){
// hier steht der Kram, der vorher auch zwischen den Klammern stand
}
Ich hoffe, das hilft.
Grüße killerkarnickel
Panicpixel 29. Februar 2004, 22:52
Hallo!
Vielen Dank für Deine schnelle Antwort!
Mh - wie schreib ich denn so eine Variable damit die einzelnen Teile gezählt und die Fehlerpunkte bei falschen ablegen gezählt werden?
Vielleicht magst Du mir nochmal helfen?
Lieben Gruß
Panicpixel
killerkarnickel 29. Februar 2004, 23:33
Probier es mal so (ich habs nicht getestet, müßte aber so gehen):
onClipEvent (load) {
magdeburg_startX = _x;
magdeburg_startY = _y;
dragged=false;
}
onClipEvent (mouseDown) {
if (this.hitTest (_root._xmouse, _root._ymouse, true)) {
this.startDrag (false);
dragged=true;
}
}
onClipEvent (mouseUp) {
if (dragged==true){
stopDrag ();
if (this.hitTest (_root.ziel_stadt_magdeburg)) {
setProperty("", _x, "600");
setProperty("", _y, "180");
_root.alleTeile++;
_root.weiter();
} else {
_x = magdeburg_startX;
_y = magdeburg_startY;
_root.score += 1;
}
dragged=false;
}
}
Ist klar, was passiert ? Wenn nicht, fragen....
killerkarnickel
Panicpixel 01. März 2004, 13:24
Hallo killerkarnickel!
Vielen, vielen Dank!
Es klappt!
Juhuuu!
Lieben Gruß
Panicpixel :)