+ Antworten
Ergebnis 1 bis 12 von 12

Thema: Problem mit clipEvent

  1. #1
    TP-Junior luluna macht alles soweit korrekt
    Registriert seit
    Aug 2006
    Ort
    Berlin
    Beiträge
    25

    Problem mit clipEvent

    hallo, ich melde mich hier mit einem neuem problem:
    also ich habe mehrere mc's auf der bühne, die nennen sich Teil1, Teil2, Teil3 usw. dann habe ich weitere mc's auf der bühne , die sich Teil1Ziel, Teil2Ziel usw nennen. dann habe ich noch einen button, der auf der hauptzeitleiste mit bt_Antwort.onRelease = function(){
    gotoAndStop(11);}

    zum nächsten Frame springt.
    außerdem gibt es eine Variable auf der hauptzeitleiste, die nennt sich punktestand = 0;

    nun zu meinem problem:
    in meinen mc Teil1 habe ich folgenden code geschrieben:
    onClipEvent (mouseDown){
    xpos = this._x;
    ypos = this._y;
    if(this.hitTest(_root._xmouse,_root._ymouse,true)){
    this.startDrag(true,180,0,600,350);
    }}

    onClipEvent (mouseUp){
    this.stopDrag();
    if(eval(this._droptarget)==_root[this._name+"Ziel"]){
    _root.punktestand += 1;
    trace(_root.punktestand);
    }
    }

    das funzt auch alles soweit.... nur wenn ich jetzt nachdem ich sozusagen den mc Teil1 auf den mc Teil1Ziel positioniert habe, und er den punktestand um 1 erhöht, und ich dann auf den button Antwort in der hauptzeitleiste drücke und er dann in den nächsten frame springt, addiert er noch ein weiteres mal den punktestand mit 1. also am ende hab iuch dann 2... das ist aber falsch... ich brauch 1... irgentwie wird die onClipEventfunktion noch einmal ausgeführt, sobald ich auf den button Antwort drücke.... wie kann ich das unterbinden? könnt ihr mir mal nen tip geben?
    vielen dank im voraus!!
    gruß

  2. #2
    TP-Junior luluna macht alles soweit korrekt
    Registriert seit
    Aug 2006
    Ort
    Berlin
    Beiträge
    25
    oh das problem eskalliert...
    wenn ich nun die onClipEvent Sachen in den nächsten mc schreibe Teil2 sozusagen und Teil1 schon richtig liegt auf Teil1Ziel, dan addiert er zweimal 1 also 1mal für das richtige positionieren von Teil2 auf Teil2Ziel und dann noch mal für Teil1 auf Teil1Ziel.... obwohl da ja schon einmal plus 1 gerechnet wurde...
    bitte bitte helft mir
    gruß
    Geändert von luluna (23.08.2006 um 13:24 Uhr)

  3. #3
    TP-Moderator StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE Avatar von StephanF
    Registriert seit
    Feb 2003
    Ort
    Erfurt
    Beiträge
    1.217
    häng mal bitte die fla hier rein, ist das besser zum helfen
    Schöne Grüße aus Thüringen
    Stephan Page

    Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
    Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum

    schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!

  4. #4
    TP-Junior luluna macht alles soweit korrekt
    Registriert seit
    Aug 2006
    Ort
    Berlin
    Beiträge
    25
    gut, hab dir mal die fla angehängt...:

    hier noch ein paar erklärungen:
    1: ich möchte die unter der abb stehenden begriffe der abbildung zuordnen, dazu kann ich die mc mit den begriffen per drag mit der mouse nehmen und sie dann auf die grauen felder packen.... wenn die mc übereinstimmen d.h. die Teil1, Teil2 usw. mc's auf den richtigen Teil1Ziel oder Teil2Ziel usw. (graue Felder) liegen, dann soll ein punkt vergeben werden.
    der wird bis jetzt auch vergeben, nur, das wenn ein mc erstmal richtig liegt, bei jeder click aktion mit der mouse immer wieder 1 hochgezählt wird. das soll aber nicht so sein.... es soll nur einmal gecheckt werden , ob der mc richtig liegt und dann will ich die punktzahl im nächsten frame über ein textfeld ausgeworfen haben...

    danke, dass du dir das mal anguckst...
    gruß
    Angehängte Dateien

  5. #5
    TP-Junior luluna macht alles soweit korrekt
    Registriert seit
    Aug 2006
    Ort
    Berlin
    Beiträge
    25
    so jetzt hab ich noch ein problem: wenn ich diese swf datei in eine andere lade, und dann versuche, die begriffe zuzuordnen, was auch in der swf allein erstmal funktionierte, dann rasten meine begriffe oder Teil m's nicht mehr in die Zielmc's ein... habe gedacht, das leigt evtl. am _root, aber nach ändern von _root in _parent funktioniert nach einladen der swf in eine andere swf gar nix mehr ... auserdem gibt er als ausgabe für meine punkte NaN an... Was bedeutet dies?

  6. #6
    TP-Moderator StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE Avatar von StephanF
    Registriert seit
    Feb 2003
    Ort
    Erfurt
    Beiträge
    1.217
    Ruhe bewaren, das wird schon, muß nebenbei noch ein Angebot schreiben( Haß, meine Lieblingsbeschäftigung), hab deine fla schon vor mir
    Schöne Grüße aus Thüringen
    Stephan Page

    Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
    Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum

    schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!

  7. #7
    TP-Moderator StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE Avatar von StephanF
    Registriert seit
    Feb 2003
    Ort
    Erfurt
    Beiträge
    1.217
    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
    "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(true1800600350);
    //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
        
    "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
    Angehängte Dateien
    Schöne Grüße aus Thüringen
    Stephan Page

    Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
    Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum

    schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!

  8. #8
    TP-Junior luluna macht alles soweit korrekt
    Registriert seit
    Aug 2006
    Ort
    Berlin
    Beiträge
    25
    uiiiiiiii, dannnnnnke... das ist viel... da muß ich mich erstmal durchfriemeln.... und wenn es funzt oder auch nicht, dann meld ich mich nochmal........ vielen dank... bis demnächst

  9. #9
    TP-Junior luluna macht alles soweit korrekt
    Registriert seit
    Aug 2006
    Ort
    Berlin
    Beiträge
    25
    hallo. also nochmals vielen dank... habe alles richtig implementieren können... und noch n bisl erweitert. wenn mc und mc ziel übereinstimmen, lässt er den begriff auf dem feld einrasten dazu schrieb ich in die prüfen funktion :

    if(eval(this[mc]._droptarget) == this [ziel]){
    this[mc]._x = this [ziel]._x;
    this[mc]._y = this [ziel]._y;


    auch wenn ich diese swf in eine andere lade funktioniert nun alles... kannst du mir evtl sagen, warum das bei meiner version nicht funktioniert hat?
    weil das hab ich noch nicht wirklich verstanden... bei allen anderen features blick ich durch.

    hab auch noch ne überprüfung der punkte eingebaut... nun wertet er die erreichten punkte aus, und gibt aus, ob evtl nochmal wiederholt werden sollte oder nicht... das nur zur zusatzinfo...
    ansonsten danke danke danke ... hast mir sehr geholfen... und sorry nochmal für meine ungeduld am anfang.
    gruß

  10. #10
    TP-Moderator StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE Avatar von StephanF
    Registriert seit
    Feb 2003
    Ort
    Erfurt
    Beiträge
    1.217
    kannst du mir evtl sagen, warum das bei meiner version nicht funktioniert hat?
    Vielleicht lag es an den Unmengen von Hilfslinien auf der Bühne, hatte ja alles Grün.
    Nein im Ernst, die enterFrame auf den Buttons waren hier nicht glücklich gewählt, hierdurch kamen manche Anweisungen nicht geordnet, oder bei zeitlichem Zufall gemeinsam zur Ausführung. Auch hattest Du ja eine Prüfung der belegten Ziel Mc's nicht angelegt. Somit war es möglich unendlich viele Punkte zu sammeln.
    if(eval(this[mc]._droptarget) == this [ziel]){
    this[mc]._x = this [ziel]._x;
    this[mc]._y = this [ziel]._y;
    ist schon mal lobenswert.

    Dann noch viel Spaß beim weiterbasteln.
    Schöne Grüße aus Thüringen
    Stephan Page

    Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
    Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum

    schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!

  11. #11
    TP-Junior luluna macht alles soweit korrekt
    Registriert seit
    Aug 2006
    Ort
    Berlin
    Beiträge
    25
    hm... komm mir son ganz klein bisl verscheißert vor.....
    oder teuscht das nur?!!!
    Geändert von luluna (24.08.2006 um 15:57 Uhr)

  12. #12
    TP-Moderator StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE StephanF ist ein richtiges Arbeitstier - DANKE Avatar von StephanF
    Registriert seit
    Feb 2003
    Ort
    Erfurt
    Beiträge
    1.217
    Das teuscht nur.
    Das war nu wirklich nicht meine Absicht, und auch nicht so gemeint. Nix für ungut
    das mit den Hilfslinien war auch so zu verstehen, dass ich die Dinger nicht abkann. Versauen eim die ganze Bühne. Aber es gibt ja Strg+ü und alles ist gut. Und das lobenswert war erst gemeint, da es auch andere hier gibt, die sich selber nicht so viele Gedanken machen und lieber Löcher in das Board fragen.
    Schöne Grüße aus Thüringen
    Stephan Page

    Stell Dir vor, hier steht was und keiner liest es!! schon entdeckt?? F1 ist ne geile Taste
    Ich beantworte keine E-Mails. Bitte alle Fragen ins Forum

    schon gehört??? Das Internet ist voll, die lassen keinen mehr rein!!

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51