내 개체의 네 모퉁이를 얻으려고합니다. 그것의 정확성 여부를 테스트합니다. 마우스가 객체의 아래쪽, 왼쪽, 오른쪽 또는 위쪽을 통과 할 때 메시지 추적 방법을 사용하십시오. 물체가 좌표 0,0에 위치 할 때. 그것은 완벽하게 작동합니다. 그러나 나는 그것을 재배치 할 때. 그것은 꺼져 버리고 나는 그 이유를 모른다. 여기 내 코드가있다.개체 영역 가져 오기
내 클래스에는 2 개의 methods.updateArea()가있는 루프가 있습니다. 그리고 checkball. 객체를 업데이트 할 영역 상수를 업데이트합니다. 내 표시 객체 forcus 포인트는 Flash Stage의 왼쪽 상단에 있습니다. 그래서 전폭과 높이를 사용합니다. 다시. 좌표 0,0에서 잘 작동하고 움직일 때 나던 않습니다.
package com.objects {
import flash.display.Sprite;
import flash.events.*;
import flash.display.Stage;
import flash.geom.Rectangle;
public class Brick extends Sprite {
public var Points = 100;
public var bWidth:Number = 50;
public var bHeight:Number = 20;
private var left:Number;
private var right:Number;
private var top:Number;
private var bottom:Number;
public var ball:Ball;
private var lastDistance:Number;
public var hit:Boolean;
public function Brick():void
{
addEventListener(Event.ENTER_FRAME, loop);
}
private function loop(e:Event):void
{
updateArea();
checkBall();
}
private function updateArea():void {
left = x;
right = x + bWidth;
top = y;
bottom = y + bHeight;
}
private function checkBall():void
{
if(mouseY < bottom)
{
trace("Works!");
}
}
public function getBall(ball:Ball):void
{
this.ball = ball;
}
public function xDir():Number
{
if ((ball.xDir * ball.xspeed) < 0)
{
return(-1);
}
else if ((ball.xDir * ball.xspeed) > 0)
{
return (1);
}
return 0;
}
public function yDir():Number
{
if (ball.yspeed < 0)
{
return(-1);
}
else if (ball.yspeed > 0)
{
return (-1);
}
return 0;
}
}
}
흠, 내 무비 클립의 x 및 y 좌표가 무대 좌표와 다릅니다. 메인 스테이지 대신 내 디스플레이 객체 스테이지에 상대적이라는 것을 알았습니다. 하지만 항상 x와 y 좌표가 표시 객체에 대해 항상 메인 스테이지와 관련이 있다고 생각했습니다. 왜 이것이 다른가요 ?? – numerical25