flash actionscript 3.0 键盘事件 20

我做的是一个龙在随机运动然后一个小球s1在被键盘控制上下左右运动可是龙是挺正常的但s1不被控制是不是和计时器有冲突importflash.utils.Timer;long... 我做的是一个龙在随机运动 然后一个小球s1在被键盘控制 上下左右运动可是龙是挺正常的但s1不被控制 是不是和计时器有冲突
import flash.utils.Timer;
long.gotoAndStop("stop_right");var n:int;
var timer:Timer = new Timer(1000);
timer.addEventListener(TimerEvent.TIMER,f1);
timer.start();
function f1(e:TimerEvent)
{n = Math.floor(Math.random() * 4 + 1);

this.addEventListener(Event.ENTER_FRAME,R2);
}
function R2(e:Event)
{
switch (n)
{
case 1 :
long.gotoAndStop("run_right");
long.x += 3;
if (long.x > 550)
{
ch2();
}
break;
case 2 :
long.gotoAndStop("run_left");
long.x -= 3;
if (long.x < 0)
{
ch2();
}
break;
case 3 :
long.gotoAndStop("run_down");
long.y += 3;
if (long.y > 400)
{
ch2();
}
break;
case 4 :
long.gotoAndStop("run_up");
long.y -= 3;
if (long.x < 0)
{
ch2();
}
break;
}
}
function ch2()
{
timer.stop();
gotoAndStop(3);
this.removeEventListener(Event.ENTER_FRAME,R2);
}
a2.addEventListener(MouseEvent.CLICK,ch1);
function ch1(e:Event)
{
timer.stop();
gotoAndStop(3);
this.removeEventListener(Event.ENTER_FRAME,R2);
}
//const speed:int = 5;
stage.addEventListener(KeyboardEvent.KEY_DOWN,g1);
function g1(e:KeyboardEvent)
{
switch (e.keyCode)
{
case Keyboard.UP :
s1.y -= 5;
break;
case Keyboard.DOWN :
s1.y += 5;
break;
case Keyboard.LEFT :
s1.x -= 5;
break;
case Keyboard.RIGHT :
s1.x += 5;
break;
case Keyboard.SPACE :
s1.y -= 50;
break;
}
}
stage.addEventListener(KeyboardEvent.KEY_UP,g2);
function g2(e:KeyboardEvent)
{
switch (e.keyCode)
{
case Keyboard.SPACE :
s1.y += 50;
break;
}
}
展开
 我来答
局势君
2013-05-02 · 知道合伙人教育行家
局势君
知道合伙人教育行家
采纳数:409 获赞数:466

向TA提问 私信TA
展开全部
代码没有问题,s1不能动应该是别的原因,是不是s1命名有错误还是s1和龙不在同一个容器里。
建议将:this.addEventListener(Event.ENTER_FRAME,R2);放到timer.start();下面一行,循环侦听没必要每隔一秒创建一个,一次就够了。
追问
S1  命名没错误 s1和龙是在一个祯里面
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式