仪器社区

请教高手AS3使用键盘控制元件移动,出现堆栈溢出错误。代码如下:

终遇你N 2018-11-23
package { import flash.display.MovieClip; import flash.events.Event; import flash.events.FocusEvent; import flash.events.KeyboardEvent; /** * ... * @author */ public class Player extends MovieClip { public var HP:Number; pr... package { import flash.display.MovieClip; import flash.events.Event; import flash.events.FocusEvent; import flash.events.KeyboardEvent; /** * ... * @author */ public class Player extends MovieClip { public var HP:Number; private const speed:Number=6; var leftArrow:Boolean=false; var rightArrow:Boolean=false; var upArrow:Boolean=false; var downArrow:Boolean=false; var p:MovieClip; public function Player() { init(); } private function init() { p=new Player ; addChild(p); stage.addEventListener(KeyboardEvent.KEY_DOWN,keypressedDown); stage.addEventListener(KeyboardEvent.KEY_UP,keypressedUp); stage.addEventListener(Event.ENTER_FRAME, pMove); stage.addEventListener(Event.DEACTIVATE, miss); } function keypressedDown(e:KeyboardEvent) { switch(e.keyCode) { case 37: leftArrow = true; break; case 39: rightArrow = true; break; case 38: upArrow = true; break; case 40: downArrow = true; break; default: break; } } function keypressedUp(e:KeyboardEvent) { switch(e.keyCode) { case 37: leftArrow = false; break; case 39: rightArrow = false; break; case 38: upArrow = false; break; case 40: downArrow = false; break; default: break; } } function pMove(e:Event) { if (leftArrow&&!rightArrow) { if (0<=p.x) { p.x-=speed; } } else if (rightArrow&&!leftArrow) { if (stage.width-20-p.width>=p.x) { p.x+=speed; } } else if (upArrow&&!downArrow) { if (p.y>=0) { p.y-=speed; } } else if (downArrow&&!upArrow) { if (p.y<=stage.height-20-p.height) { p.y+=speed; } } } function miss(e:Event) { leftArrow = false; rightArrow = false; upArrow = false; downArrow = false; } } }
评论
全部评论
您可能感兴趣的社区主题
加载中...
发布 评论