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的变量,并将其放入代码中。它有助于管理代码,特别是当我们需要修改代码时。谢谢