AS3 - 球击中Y坐标

时间:2012-04-28 18:52:21

标签: actionscript-3 flash

我正在为学校制作一个小应用程序,你可以使用Acceleropmeter控制球(对于智能手机)我想要的是,如果球到达某个Y坐标,你输了,你去另一个框架(它在那里)说你输掉了比赛)。到目前为止,我已经完成了球和代码:

var fl_Accelerometer:Accelerometer = new Accelerometer();
fl_Accelerometer.addEventListener(AccelerometerEvent.UPDATE, fl_AccelerometerUpdateHandler);

function fl_AccelerometerUpdateHandler(event:AccelerometerEvent):void
{
cBall.x -=  event.accelerationX * 40;
cBall.y +=  event.accelerationY * 40;
}

cBall.addEventListener(Event.ENTER_FRAME, moveBall);
function moveBall(evt:Event){

// this is to stop the ball when it tries to exit the sreen 

if(cBall.x > (480-cBall.width/2)){
    cBall.x = 480-cBall.width/2;
}
    // except for this, that stops the ball not if it touches the end of the screen, but if it reaches a certain Y coordinate
if(cBall.y > (780-cBall.width/2)){
   gotoAndStop(3);
}
if(cBall.x < (0+cBall.width/2)){
    cBall.x = 0+cBall.width/2;
}
if(cBall.y < (0+cBall.width/2)){
    cBall.y = 0+cBall.width/2;
}
}

每当我尝试使用该应用程序时,它都会在第32行显示错误(TypeError:错误#1009:无法访问空对象引用的属性或方法。     在ballApp_Scene1_fla :: MainTimeline / moveBall()[ballApp_Scene1_fla.MainTimeline :: frame1:32)为什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

由于cball是moveBall函数中使用的唯一对象,因此空指针异常意味着cBall尚未初始化。由于没有显示这部分,因此没有大的帮助..

但也许可以看看碰撞检测和

另一个试图做类似的事情: BitmapData Collision