Migración _xmouse a AS3

  • deafdigit
  • Newbie
  • Newbie
  • No Avatar
  • Registrado: Oct 06, 2009
  • Mensajes: 7
  • Status: Offline

Nota Octubre 18th, 2009, 4:24 am

Hola chicos,


Ive recorrió lo que parece ser la totalidad de Internet para obtener una respuesta para esta pregunta, pero no parece estar allí, así que pensé Id obtener una respuesta directa, una vez por todas.

En AS2, adjuntando _xmouse a un objeto que devuelva el mouse_coords en relación con ese objeto.
Sé que han cambiado a _xmouse mouseX en AS3, pero esto parece volver el ratón absoluta coordenadas no importa lo que adjuntarlo a, sin importar que en realidad es acoplable a objetos:

Código: [ 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. }


El código anterior devuelve el valor absoluto de las coordenadas del ratón, no importa donde haga clic - en la plaza, o en el escenario.

Así que mi pregunta es la siguiente: ¿Existe una manera de obtener el ratón coordenadas respecto a un objeto en AS3?


Como siempre, gracias a todos de antemano,
/ / Deafdigit
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Octubre 18th, 2009, 4:24 am

  • IceCold
  • Guru
  • Guru
  • Avatar de Usuario
  • Registrado: Nov 05, 2004
  • Mensajes: 1254
  • Loc: Ro
  • Status: Offline

Nota Octubre 19th, 2009, 2:40 am

Situación extraña, pero soy su miedo flash bastante correcta sobre lo que devuelve, y, en su punto de vista, las coordenadas son locales :D
Permítanme explicar lo que haces.
1. de crear un sprite nuevo, y desde su sprite de un vacío, se iniciará de 0,0 con un ancho de 0 x 0 x altura.
2. dentro de ese sprite, a partir de 100, 100, se dibuja un cuadrado. Flash considerar que su sprite es a partir de 0, 0 y sólo dibujar el rectángulo interior. Calcula la anchura y la altura sobre la base de la anchura / altura de los objetos dentro del sprite, pero las coordenadas se calcula a partir de 0, 0, incluso si no se considera el espacio vacío como parte de los sprites.
Así que en lugar de crear el rectángulo de 100, 100, cree que en 0,0
y luego pasar a la plaza a 100, 100.
Código: [ 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. ”

Publicar Información

  • Total de mensajes en este tema: 2 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 30 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC