khi truy tìm các tọa độ mouseX/mouseY
hoặc localX/localY
của đối tượng hiển thị, tại sao x
bắt đầu tại 1 trong khi y
bắt đầu bằng 0? Ví dụ:ActionScript - Tọa độ chuột không chính xác?
ví dụ, tôi đã vẽ một hình ảnh 400 x 400 pixel đơn giản lên sân khấu với trình nghe sự kiện MouseEvent.MOUSE_MOVE
gọi một hàm xử lý để theo dõi tọa độ cục bộ của chuột.
pixel đầu tiên, trên cùng bên trái trả về {x:1, y:0}
và điểm ảnh cuối cùng, dưới cùng bên phải trả lại {x:400, y:399}
. không nên bắt đầu và kết thúc bằng x
và y
với cùng giá trị? Tôi không chắc chắn mà làm cho ý nghĩa hơn cho một tọa độ chuột đầu tiên (hoặc 0 hoặc 1) nhưng nó chắc chắn không có ý nghĩa rằng họ là khác nhau?
[SWF(width = "1000", height = "600", backgroundColor = "0xCCCCCC")]
import flash.display.Sprite;
import flash.events.MouseEvent;
var darkBlueRect:Sprite = createSprite();
darkBlueRect.x = 23;
darkBlueRect.y = 42;
addChild(darkBlueRect);
darkBlueRect.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveEventHandler);
function mouseMoveEventHandler(evt:MouseEvent):void
{
trace(darkBlueRect.mouseX, evt.localX, darkBlueRect.mouseY, evt.localY);
}
function createSprite():Sprite
{
var result:Sprite = new Sprite();
result.graphics.beginFill(0x0000FF, 0.5);
result.graphics.drawRect(0, 0, 400, 400);
result.graphics.endFill();
return result;
}
Câu hỏi hay. Ngoài ra 'trace (darkBlueRect.localToGlobal (new Point (evt.localX, evt.localY));' sẽ cho '(x = 24, y = 42)' – shanethehat
Tôi không nhận được kết quả tương tự. Các tọa độ ở cuối của sprite sẽ xuất hiện khi chúng cần (423/442 toàn cầu và 400/400 cục bộ). Cũng lưu ý rằng mySprite.localX và mySprite.mouseX giống nhau. Dù sao chỉ có lỗi tôi tìm thấy là tại nguồn gốc, X bắt đầu từ 1 không thể bấm vào 0. –