Migration _xmouse zu AS3

  • deafdigit
  • Newbie
  • Newbie
  • No Avatar
  • Registriert: Okt 06, 2009
  • Beiträge: 7
  • Status: Offline

Beitrag Oktober 18th, 2009, 4:24 am

Hey guys,


Ive abgekocht, was fühlt sich an wie das gesamte Internet, um eine Antwort auf diese Frage zu bekommen, aber es scheint nicht da draußen sein, so dass ich dachte Id bekommen eine klare Antwort für allemal.

In AS2 würde, das Anbringen _xmouse ein Objekt zurückgeben mouse_coords im Verhältnis zu dem Objekt.
Ich weiß, dass _xmouse müssen mouseX in AS3 verändert, aber dies scheint die absolute return-Maus coords egal, was ich hängen Sie es an, unabhängig davon, daß es tatsächlich zu koppeln, um Objekte:

Code: [ Download ] [ Select ]
import flash.display.Sprite;
import flash.events.MouseEvent;

var square:Sprite = new Sprite();
square.graphics.beginFill(0xFF0000);
square.graphics.drawRect(100, 100, 100, 100);
addChild(square);

square.addEventListener(MouseEvent.CLICK, traceCoordinates);
stage.addEventListener(MouseEvent.CLICK, traceCoordinates2);

function traceCoordinates(e:Event):void {
  trace(square.mouseX, square.mouseY);
}

function traceCoordinates2(e:Event):void {
  trace(mouseX, mouseY);
}
  1. import flash.display.Sprite;
  2. import flash.events.MouseEvent;
  3. var square:Sprite = new Sprite();
  4. square.graphics.beginFill(0xFF0000);
  5. square.graphics.drawRect(100, 100, 100, 100);
  6. addChild(square);
  7. square.addEventListener(MouseEvent.CLICK, traceCoordinates);
  8. stage.addEventListener(MouseEvent.CLICK, traceCoordinates2);
  9. function traceCoordinates(e:Event):void {
  10.   trace(square.mouseX, square.mouseY);
  11. }
  12. function traceCoordinates2(e:Event):void {
  13.   trace(mouseX, mouseY);
  14. }


Der obige Code gibt den absoluten Wert der Maus-coords, egal wo ich auf - auf dem Platz oder auf der Bühne.

Meine Frage ist: Gibt es eine Möglichkeit, um die Maus get-coords relativ zu einem Objekt in AS3?


Wie immer, ich danke Ihnen allen im Voraus,
/ / Deafdigit
  • Anonymous
  • Bot
  • No Avatar
  • Registriert: 25 Feb 2008
  • Beiträge: ?
  • Loc: Ozzuland
  • Status: Online

Beitrag Oktober 18th, 2009, 4:24 am

  • IceCold
  • Guru
  • Guru
  • Benutzeravatar
  • Registriert: Nov 05, 2004
  • Beiträge: 1229
  • Loc: Ro
  • Status: Offline

Beitrag Oktober 19th, 2009, 2:40 am

Strange Situation, sondern im Flash, die Angst ganz richtig, was es gibt, und in ihrer Sicht, die Koordinaten sind lokale :D
Lassen Sie mich erklären, was Sie tun.
1. Sie erstellen einen neuen Sprite, und seit der ein leeres Sprite, wird es von 0,0 mit einem 0 x 0 Breite x Höhe beginnen.
2. innerhalb dieses Sprite, ab 100, 100, zeichnen Sie ein Quadrat. Flash bedenken, dass Ihre Sprite Preis von 0, 0 und zeichnen Sie nur das Rechteck hinein. Es berechnet die Breite und Höhe auf der Grundlage der Breite / Höhe der Objekte innerhalb der Sprite, aber die Koordinaten von 0, 0 berechnet, auch wenn sie nicht der Auffassung der leere Raum als Teil des Sprites.
Anstatt also die Schaffung des Rechtecks bei 100, 100, legen Sie ihn auf 0,0
und verschieben Sie dann den Platz bis 100, 100.
Code: [ Download ] [ Select ]
square.graphics.drawRect(0, 0, 100, 100);
square.x = 100; square.y = 100;
  1. square.graphics.drawRect(0, 0, 100, 100);
  2. square.x = 100; square.y = 100;
“True mastery transcede any particular art. It stems from mastery of oneself - the ability, developed throgh self-discipline, to be calm, fully aware, and complety in tune with oneself and the surroundings. Then, and only then, can a person know himself. ”

Buchung Informationen

  • Beiträge in diesem Thema: 2 Beiträge
  • Mitglieder in diesem Forum: 0 Mitglieder und 44 Gäste
  • Du darfst keine neuen Themen in diesem Forum erstellen.
  • Du darfst keine Antworten zu Themen in diesem Forum erstellen.
  • Du darfst deine Beiträge in diesem Forum nicht ändern.
  • Du darfst deine Beiträge in diesem Forum nicht löschen.
  • Du darfst keine Dateianhänge in diesem Forum erstellen.
 
 

© Unmelted Enterprises 1998-2009. Angetrieben durch phpBB © 2001-2009 phpBB Group.