Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-07-2004, 11:19   #1 (permalink)
MF_
Neuer User
 
Registriert seit: May 2004
Beiträge: 98
Question Drag and Drop durch verschiedene MCs leider nur Press Drag & press Drop

Hallo,

ich habe hier ein kleines Problem. Und zwar möchte ich einen MC (z.B. mcDragMe) aus einem Container (mcContainer) auf die Bühne im Root drag and droppen. Mc Container liegt im root.

Bis jetzt funktioniert eigentlich alles ganz gut, bis auf dass es kein Drag and Drop, sondern Press Drag & press Drop ist

Ich geh wie folgt vor: Wenn man mcDragMe im Container anklickt, wird er auf _alpha = 10 gesetzt. Nun wird im _root durch attachMovie mcDragMe erneut instanziert und durch startDrag beweglich gemacht.
_root.mcDragMe._x (/y) = root.x(/y)mouse lassen mcDragMe dem Mauszeiger folgen.
Will ich ihn nun mit onRelease loslassen, funktioniert das erst nach einem erneuten Klick, da onRelease vorher in dieser Ebene noch nicht aktiviert wurde.

Hat jemand eine Idee, wie ich das in ein ‚echtes’ Drag and Drop umschreiben kann? Den mcContainer brauche ich leider, sonst müsste ich nicht neu Attachen und könnte die ursprüngliche onRelease Funktion benutzen.

Hier mal ein Auszu von meinem Script, die mc Namen sind anders als in der obigen Beschreibung

PHP-Code:
    _root.attachMovie(["mcHausS"+numberMc], ["mcHausS"+numberMc],getNextHighestDepth());      // Neuen MC instanzieren
    
    
    
    
_root.mcMenue.laufleiste["mcHaus"+numberMc]._alpha 10;    // alte MCs ausfaden

    
    
    
_root["mcHausS"+numberMc].startDrag();    
    
_root["mcHausS"+numberMc].onRelease = function() {

        if (
_root["mcHausS"+numberMc]._y >= 350// Wenn im dragablen Bereich, loslassen
            
{
                
stopDrag();
                
_root["mcHausS"+numberMc]._x dragPositionsX[numberMc];
                
_root["mcHausS"+numberMc]._y dragPositionsY[numberMc];
                
userGuide[i] = numberMc;
                
i++;

            }
        else 
            {
                
_root.mcMenue.laufleiste["mcHaus"+numberMc]._alpha 100;

                
_root["mcHausS"+numberMc].removeMovieClip();
                
            }
            
            }
    
    
_root["mcHausS"+numberMc]._xscale 20;
    
_root["mcHausS"+numberMc]._yscale 20;    

    
_root["mcHausS"+numberMc]._x _root._xmouse-25;
    
_root["mcHausS"+numberMc]._y _root._ymouse-25;


MF_ ist offline   Mit Zitat antworten
Alt 10-07-2004, 12:15   #2 (permalink)
Der Verpeiler
 
Registriert seit: Jun 2004
Beiträge: 99
Kann es sein das bei dem Snippet der Kopf der Funktion fehlt? Da ist eine geschweifte schliessende Klammer ohne Gegenstück. Ist das die onPress/onRelease Funktion des Buttons den Du zuerst klickst?

Eine 'echtes' Drag and Drop kann das IMHO nicht mehr werden da es ja mehr oder weniger 'gefaked' wird (ist ja nicht mehr der 'original' Clip der gedragt wird).

Zitat:
Zitat von MF_
Will ich ihn nun mit onRelease loslassen, funktioniert das erst nach einem erneuten Klick, da onRelease vorher in dieser Ebene noch nicht aktiviert wurde.
Probier Doch mal anstatt den MC nach dem attachen draggable zu machen, das draggable machen in den onPress Handler des zu attachenden MovieClips zu schreiben und die onPress-Methode des Buttons manuell auszuführen (dort wo Du den MC momentan draggable machst: myMc.onPress();). Vielleicht korrigiert das die Ereigniskette und der onRelease funzt dann. Probiers halt mal aus, is ja nur ne kleine Änderung.

Viel Glück
__________________
Know your scope.
mnemonic ist offline   Mit Zitat antworten
Alt 10-07-2004, 12:27   #3 (permalink)
MF_
Neuer User
 
Registriert seit: May 2004
Beiträge: 98
Ja, habe oben einen Teil vergessen beim rauskopieren.

Werde dein Vorschlag mal versuchen, und dann sagen obs geklappt hat. Muss jetzt aber erstmal für 2 Std weg.

Gruß
Marco
MF_ ist offline   Mit Zitat antworten
Alt 10-07-2004, 16:02   #4 (permalink)
MF_
Neuer User
 
Registriert seit: May 2004
Beiträge: 98
Hmm, er dragt ihn, dropt aber beim loslassen nicht. Scheinbar lässt sich da AS nicht "verarschen".

Hat vielleicht noch jemand ne andere Idee? *verzweifel*

Gruß Marco

PS: das script liegt in ner Funktion, nicht auf dem MC
MF_ ist offline   Mit Zitat antworten
Alt 10-07-2004, 16:55   #5 (permalink)
Der Verpeiler
 
Registriert seit: Jun 2004
Beiträge: 99
Dann versuchs Doch mal mit onMouseUp. Das kommt unabhängig von onMouseDown. Musst Dir dann halt ein Flag anlegen welches verwaltet ob der Clip gerade gedraggt wird oder nicht.
__________________
Know your scope.
mnemonic ist offline   Mit Zitat antworten
Alt 12-07-2004, 11:11   #6 (permalink)
MF_
Neuer User
 
Registriert seit: May 2004
Beiträge: 98
Juhu, danke. Funktioniert einwandfrei

Gruß
Marco
MF_ ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele