首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >球不动AS3

球不动AS3
EN

Stack Overflow用户
提问于 2017-06-21 09:15:45
回答 1查看 46关注 0票数 1

我一直在学习如何在as3中制作一个简单的高尔夫游戏。当我移动手机时,球应该会移动,但出于某种原因它不会移动:高尔夫游戏形象

到目前为止,这是我的外部代码:

代码语言:javascript
复制
package  {
import flash.events.Event;
public class golf extends MovieClip {

    public function golf() {
        stop();
        startbtn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToNextScene);
        fl_Accelerometer.addEventListener(AccelerometerEvent.UPDATE, fl_AccelerometerUpdateHandler);
        ball.addEventListener(Event.ENTER_FRAME, moveBall);
        ball.addEventListener(Event.ENTER_FRAME, targethit);

    }

    var accelX:Number;
    var accelY:Number;
    var fl_Accelerometer:Accelerometer = new Accelerometer();

    function fl_AccelerometerUpdateHandler(event:AccelerometerEvent):void
    {
        accelX = event.accelerationX;
        accelY = event.accelerationY;
    }

    function moveBall(evt:Event){
        ball.x -= accelX*30;
        ball.y += accelY*30;

    if(ball.x > (480-ball.width/2)){
    ball.x = 480-ball.width/2;
    }
    if(ball.x < (0+ball.width/2)){
    ball.x = 0+ball.width/2;
    }
    if(ball.y > (800-ball.width/2)){
   ball.y = 800-ball.width/2;
    }
    if(ball.y < (0+ball.width/2)){
    ball.y = 0+ball.width/2;
    }
        }


    function targethit(e:Event):void {
        if (ball.hitTestObject(hole1)) {
            gotoAndStop(1, "End");
        }
    }


    function fl_ClickToGoToNextScene(event:MouseEvent):void
        {
        MovieClip(this.root).nextScene();
        }



}

}

到目前为止出现的错误:

代码语言:javascript
复制
TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at accelerometer()[C:\Users\HP\Downloads\GOLF\accelerometer.as:14]
    at runtime::ContentPlayer/loadInitialContent()
    at runtime::ContentPlayer/playRawContent()
    at runtime::ContentPlayer/playContent()
    at runtime::AppRunner/run()
    at ADLAppEntry/run()
    at global/runtime::ADLEntry()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 10:14:48

我用您的代码做了一个简单的测试,一个包含了所有不必要的东西的框架脚本,它适合我:

代码语言:javascript
复制
import flash.events.Event;

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;

var accelX:Number = 0;
var accelY:Number = 1;
var flAxx:Accelerometer = new Accelerometer;

flAxx.addEventListener(AccelerometerEvent.UPDATE, onAxxel);

addEventListener(Event.ENTER_FRAME, onFrame);

function onAxxel(e:AccelerometerEvent):void
{
    accelX = e.accelerationX;
    accelY = e.accelerationY;
}

function onFrame(e:Event):void
{
    ball.x -= accelX * 30;
    ball.y += accelY * 30;

    ball.x = Math.max(ball.x, ball.width / 2);
    ball.x = Math.min(ball.x, stage.stageWidth - ball.width / 2);

    ball.y = Math.max(ball.y, ball.width / 2);
    ball.y = Math.min(ball.y, stage.stageHeight - ball.width / 2);
}

因此,问题很可能不是与代码有关,而是与您测试代码的方式有关。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44671759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档