我正在尝试获取对象的四个角。要测试它是否足够准确。当我的鼠标通过对象的底部,左侧,右侧或顶部时,使用一种方法来跟踪消息。当物体位于坐标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 2010-01-06 04:18:20