请教高手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;
}
}
}
全部评论
您可能感兴趣的社区主题
评论
选购仪器 上yiqi.com
仪器网络推广
品牌网上传播
长按识别二维码查看信息详情