Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-06-2005, 14:48   #1 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Question _x und _y von this?

ich krieg noch ne Krise!
ich raff nicht, wie ich die x- und y-koordinaten des Drags ansprechen kann!
Ich habe 15 Objekte, die ich per Drag & Drop herumziehen kann. Zudem hab ich 12 Zielflächen. Grundlegend geht es mal darum, dass das Objekt auf der Zielfläche "einrastet" sobald das Objekt innerhalb der Zielfläche losgelassen wurde. Im ersten Bild habe ich folgende Funktion definiert:
ActionScript:
  1. _global.hitcontrol = function() {
  2.     for(var i = 1; i < 13; i++) {
  3.         if(this.hitTest(_root["ziel" + i])) {
  4.             this._x = _root["ziel" + i]._x;
  5.             this._y = _root["ziel" + i]._y;
  6.         }
  7.         /*else {
  8.             this._x = 10;
  9.             this._y = 10;
  10.         }*/
  11.     }
  12. }
welche ich on(release) auf dem Objekt aufrufe.

Kann mir jemand den Wald zeigen, den ich vor lauter Bäumen nicht mehr sehe?
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 14-06-2005, 14:53   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hi!
Worauf bezieht sich denn das this? Übergib das mal mit an die Funktion:
ActionScript:
  1. _global.hitcontrol = function(mc) {
  2.         for(var i = 1; i < 13; i++) {
  3.                 if(mc.hitTest(_root["ziel" + i])) {
  4.                         mc._x = _root["ziel" + i]._x;
  5.                         mc._y = _root["ziel" + i]._y;
  6.                 }
  7.                 /*else {
  8.                 mc._x = 10;
  9.                 mc._y = 10;
  10.         }*/
  11.         }
  12. }

Aufruf dann halt hitcontrol(this). Könnte klappen, hab's aber nicht probiert...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-06-2005, 14:59   #3 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Ne... funktioniert auch nicht!

Hier noch das Script auf dem Objekt:
ActionScript:
  1. on(press) {
  2.     this.startDrag()
  3. }
  4. on(release) {
  5.     this.stopDrag()
  6.     hitcontrol()
  7. }

This bezieht sich auf das Zieh-Objekt von dem es aufgerufen wird!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:05   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
So:
ActionScript:
  1. on(press) {
  2.         this.startDrag()
  3. }
  4. on(release) {
  5.         this.stopDrag()
  6.         hitcontrol(this)
  7. }
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:08   #5 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
...hatte ich so ausprobiert! Funktionierte auch nicht!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:10   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Mach mich nicht fertig... Das geht. Guckst du:
Angehängte Dateien
Dateityp: rar hit.rar (4,2 KB, 9x aufgerufen)
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:21   #7 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Naja... das ist ja das Problem! Für nur ein Objekt hätt ich das mit ner anständigen instanzierung schon hingekriegt... nur this stand ja jeweils für das Objekt (eines von 12!), welches die Funktion aufrief!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:23   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Jetzt verstehe ich nur noch Bahnhof?
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:24   #9 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
Wenn du "this" in einer Function verwenden wisllt musst du ein prototype machen.
jonny-noob ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:35   #10 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Zitat:
Zitat von Der Frager
Jetzt verstehe ich nur noch Bahnhof?
also, das Beispiel von dir hat bestens funktioniert. Mit einem zu ziehenden Objekt. Mein Ziel war es allerdings, das ganze mit 15 zu ziehenden Objekten zu schaffen! Dass ich also eine Funktion schreibe, die aufgerufen wird, sobald das Objekt wieder losgelassen wird und überprüft, ob es halb auf einer Zielfläche hockt, wenn ja, soll es die x- und y-Koordinaten der Zielfläche übernehmen!

Zitat:
Wenn du "this" in einer Function verwenden wisllt musst du ein prototype machen.
Jetzt versteh ich dafür nur noch Bahnhof! Mein Kopf ist im Moment zu voll und überhitzt, um die Ausführungen zu verstehen! Könnte mir jemand ein einfacheres beispiel machen?
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 14-06-2005, 15:45   #11 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Du kannst die Objekte doch in einer Schleife belegen:
ActionScript:
  1. _global.hitcontrol = function(mc) {
  2.     for (var i = 1; i<13; i++) {
  3.         if (mc.hitTest(_root["ziel"+i])) {
  4.             mc._x = _root["ziel"+i]._x;
  5.             mc._y = _root["ziel"+i]._y;
  6.             trace("hit");
  7.         }
  8.     }
  9. };
  10. for (var x = 1; x<16; x++) {
  11.     this["MC"+x].onPress = function() {
  12.         startDrag(this);
  13.     };
  14.     this["MC"+x].onRelease = function() {
  15.         stopDrag();
  16.         hitcontrol(this);
  17.     };
  18.     this["MC"+x].swapDepths(5000+x);
  19. }
Sonst weiß ich auch nicht, was genau du willst
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 14-06-2005, 16:03   #12 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
nö... geht leider nicht!
gibt komische Fehler beim Dragen & Droppen!
Aber THX anyway!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 15-06-2005, 07:57   #13 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Question

So... ich wieder!

Hab's jetzt doch nochmal mit ner Protoype versucht. Allerdings klappt der Aufruf irgendwie nicht!?

ActionScript:
  1. MovieClip.protoype.hitcontrol = function() {
  2.              trace("X-Wert ist:" + this._x);
  3.     trace("Y-Wert ist:" + this._y);
  4.     for(var i = 1; i < 13; i++) {
  5.         if(this.hitTest(_root["ziel" + i])) {
  6.             this._x = _root["ziel" + i]._x;
  7.             this._y = _root["ziel" + i]._y;
  8.         }
  9.         /*else {
  10.             this._x = 10;
  11.             this._y = 10;
  12.         }*/
  13.     }
  14. }
  15. _root.drag1.onPress = function() {
  16.     _root.drag1.startDrag();
  17.     _root.drag1.swapDepths(5000);
  18. }
  19. _root.drag1.onRelease = function() {
  20.     stopDrag();
  21.     hitcontrol();
  22. }

Eigentlich sollte ja die Ausgabe der X- und Y-Werte erfolgen, sobald das Objekt losgelassen wird. Leider passiert gar nix!? Mach ich nen Fehler beim Aufruf?
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 15-06-2005, 10:31   #14 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 644
Du musst vor hitcontroll() den MC angeben...
z.B.
ActionScript:
  1. _root.MC_1.hitcontroll();
jonny-noob ist offline   Mit Zitat antworten
Alt 15-06-2005, 12:07   #15 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
nope... funktioniert auch nicht!
Ach menno... wieso kann das Objekt diese Funktion nicht aufrufen??? Was geht falsch?
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha 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:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele