Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 将圆圈按as3移动_Actionscript 3_Keyboard Events_Stage - Fatal编程技术网

Actionscript 3 将圆圈按as3移动

Actionscript 3 将圆圈按as3移动,actionscript-3,keyboard-events,stage,Actionscript 3,Keyboard Events,Stage,我已经在屏幕上有了带有图像的图形,我想在按下键盘上的箭头时让它移动 但侦听器似乎没有运行,并且没有错误 代码如下: package { import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.display.BitmapData; import flash.events.KeyboardEvent; impor

我已经在屏幕上有了带有图像的图形,我想在按下键盘上的箭头时让它移动

但侦听器似乎没有运行,并且没有错误

代码如下:

package
{
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.BitmapData;
    import flash.events.KeyboardEvent;
    import flash.ui.Keyboard;
    import flash.net.URLRequest;

    /**.
     * ....
     * @author Kaoru
     */

    [SWF(width = '800', height = '600', backgroundColor = '#000000', frameRate = '24')]

    public class GameManager extends Sprite 
    {
        var myBitmap:BitmapData;
        var imgLoader:Loader;
        var circle:Sprite;

        public function GameManager():void 
        {
            circle = new Sprite();
            imgLoader = new Loader();
            imgLoader.load(new URLRequest("../lib/fira_front.png"));
            imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
            addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
        }

        private function drawImage(e:Event):void
        {
            myBitmap = new BitmapData(imgLoader.width, imgLoader.height, false);
            myBitmap.draw(imgLoader);

            circle.graphics.beginBitmapFill(myBitmap, null, true);
            circle.graphics.drawCircle(50, 50, 10);
            circle.graphics.endFill();
            addChild(circle);
        }

        private function onKeyDown(e:KeyboardEvent):void
        {
            if (e.keyCode == Keyboard.LEFT)
            {
                circle.x += 5;
            }

            else if (e.keyCode == Keyboard.RIGHT)
            {
                circle.x -= 5;
            }

            if (e.keyCode == Keyboard.UP)
            {
                circle.y += 5;
            }

            else if (e.keyCode == Keyboard.DOWN)
            {
                circle.y -= 5;
            }
        }
    }
}

你有没有试着直接在舞台上加入你的听众

所以这个 变成这样
你有没有试着直接在舞台上加入你的听众

所以这个 变成这样
你有没有试着直接在舞台上加入你的听众

所以这个 变成这样
你有没有试着直接在舞台上加入你的听众

所以这个 变成这样
您需要将其添加到
阶段
,就像这样

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
我对您的代码进行了如下修改:

始终先检查是否已将
添加到\u阶段
,然后继续

public function GameManager():void 
{
      addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

private function onAddedToStage(e:Event):void
{
      circle = new Sprite();
      imgLoader = new Loader();
      imgLoader.load(new URLRequest("../lib/fira_front.png"));
      imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
      stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); //This line is modified

      removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

您需要将其添加到
阶段
,就像这样

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
我对您的代码进行了如下修改:

始终先检查是否已将
添加到\u阶段
,然后继续

public function GameManager():void 
{
      addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

private function onAddedToStage(e:Event):void
{
      circle = new Sprite();
      imgLoader = new Loader();
      imgLoader.load(new URLRequest("../lib/fira_front.png"));
      imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
      stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); //This line is modified

      removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

您需要将其添加到
阶段
,就像这样

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
我对您的代码进行了如下修改:

始终先检查是否已将
添加到\u阶段
,然后继续

public function GameManager():void 
{
      addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

private function onAddedToStage(e:Event):void
{
      circle = new Sprite();
      imgLoader = new Loader();
      imgLoader.load(new URLRequest("../lib/fira_front.png"));
      imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
      stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); //This line is modified

      removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

您需要将其添加到
阶段
,就像这样

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
我对您的代码进行了如下修改:

始终先检查是否已将
添加到\u阶段
,然后继续

public function GameManager():void 
{
      addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

private function onAddedToStage(e:Event):void
{
      circle = new Sprite();
      imgLoader = new Loader();
      imgLoader.load(new URLRequest("../lib/fira_front.png"));
      imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, drawImage);
      stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); //This line is modified

      removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
}

如果要将圆移动5,则创建类似于
var circleSpeed:int=5的变量,并将其放入代码中。它有助于管理代码,特别是当我们需要修改代码时。谢谢。如果您想将圆移动5,那么创建类似于
var circleSpeed:int=5的变量,并将其放入代码中。它有助于管理代码,特别是当我们需要修改代码时。谢谢。如果您想将圆移动5,那么创建类似于
var circleSpeed:int=5的变量,并将其放入代码中。它有助于管理代码,特别是当我们需要修改代码时。谢谢。如果您想将圆移动5,那么创建类似于
var circleSpeed:int=5的变量,并将其放入代码中。它有助于管理代码,特别是当我们需要修改代码时。谢谢