Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 31-10-2003, 07:35   #1 (permalink)
Untitled User
 
Registriert seit: Dec 2001
Beiträge: 71
Question drag, hittest - nur ein MC darf einrasten?

Grüß euch!

Ich habe folgendes Script (Urheber ist glaub ich beachmeat, danke an dieser Stelle) auf 2 MovieClips :

ActionScript:
  1. onClipEvent (load) {
  2.     startX = _x;
  3.     startY = _y;
  4. }
  5. onClipEvent (mouseMove) {
  6.     this.onRollOver = function() {
  7.         this.useHandCursor = true;
  8.     }
  9. }
  10. onClipEvent (mouseDown) {
  11.     if (this.hitTest (_root._xmouse, _root._ymouse, true)) {
  12.         this.swapDepths(++_root.depth);
  13.         startDrag(this, false, 30, 30, 580, 270);
  14.     }
  15.     this.swapDepths(++_root.depth);
  16. }
  17. onClipEvent (mouseUp) {
  18.     stopDrag ();
  19.     if (this.hitTest (_root.ziel)) {
  20.         _x = _root.ziel._x;
  21.         _y = _root.ziel._y;
  22.     } else {
  23.         _x = startX;
  24.         _y = startY;
  25.     }
  26. }

Funktioniert auch einwandfrei, allerdings soll es nicht möglich sein alle beide MovieClips auf [ziel] zu draggen, sondern wenn ein MC auf [ziel] eingerastet ist, soll dieser als "besetzt" gelten.

Wenn [ziel] also nun "besetzt" ist, würde ich entweder den momentan gedragten (was für ein Wort ) wieder an seine Ursprungsposition zurückstellen oder die beiden umtauschen, sodass der momentan eingerastete MC an seine Ursprüngsposition zurückspringt und der momentan gedragte den Platz einnimmt.

Ich habe schon versucht bei mouseDown eine Variable "besetzt" zu setzen und in der mouseUp if-Abfrage abzufragen, allerdings klappt das leider nicht wie gewünscht

Herzlichen Dank im Voraus für eure Antworten!
Grüße aus dem kalten Osttirol
Hannes
__________________
lumi.at
illumitie ist offline   Mit Zitat antworten
Alt 31-10-2003, 07:54   #2 (permalink)
Untitled User
 
Registriert seit: Dec 2001
Beiträge: 71
*hmm* Ich denke ich hab's doch selbst hinbekommen ... einfacher als ich dachte

ActionScript:
  1. onClipEvent (load) {
  2.     startX = _x;
  3.     startY = _y;
  4. }
  5. onClipEvent (mouseMove) {
  6.     this.onRollOver = function() {
  7.         this.useHandCursor = true;
  8.     }
  9. }
  10. onClipEvent (mouseDown) {
  11.     if (this.hitTest (_root._xmouse, _root._ymouse, true)) {
  12.         this.swapDepths(++_root.depth);
  13.         startDrag(this, false, 30, 30, 580, 270);
  14.     }
  15.     this.swapDepths(++_root.depth);
  16. }
  17. onClipEvent (mouseUp) {
  18.     stopDrag ();
  19.     if (this.hitTest (_root.ziel) && _root.eingerastet != true) {
  20.         _x = _root.ziel._x;
  21.         _y = _root.ziel._y;
  22.         _root.eingerastet = true;
  23.     } else {
  24.         _x = startX;
  25.         _y = startY;
  26.         _root.eingerastet = false;
  27.     }
  28. }
__________________
lumi.at
illumitie 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:57 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele