发新话题
打印

Key.addListener(keyListener) 的问题

Key.addListener(keyListener) 的问题

大家看看我的这段代码,刚开始时正常,当点击next_btn,跳到第三帧后,再点击chongwan_btn返回到第一帧,反复几次,speed的值好像变大了,ren移动的距离比较大了,我加了这句removeListener(keyListener);还是不行,高手们给说说,怎么回事呢?

第一帧:
stop();
var speed:Number = 1;
var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
if (Key.isDown(37)) {
  ren._x -= speed;
}
if (Key.isDown(39)) {
  ren._x += speed;
}
if (Key.isDown(38)) {
  ren._y -= speed;
}
if (Key.isDown(40)) {
  ren._y += speed;
}
};
Key.addListener(keyListener);
next_btn.onPress = function() {
// removeListener(keyListener);
gotoAndStop(3);
};
第三帧:
chongwan_btn.onPress = function() {
gotoAndStop(1);
};

附件

方向控制.swf (11.45 KB)

2007-12-13 10:11, 下载次数: 63

临渊羡鱼不如退而结网

TOP

把 speed的值 trace出来 不久知道了。
asfox.blogbus.com
基于SFS的flash网游及应用基础知识

TOP

speed的值没变,但是确一下子出现很多个,好像是调用了很多次,Key.addListener(keyListener);
这个的原因,哪位知道如何解决么
临渊羡鱼不如退而结网

TOP

每次回到第一帧,虽然keyListener被覆盖了,但每次添加的侦听事件依然有效吧,
“removeListener(keyListener); ”? 试试Key.removeListener(keyListener);

TOP

你这个移动有问题啊.最好用循环语句

在第一帧写上:if(Key.isDown(Key.方向)){
                    MC._x-=?
                    };
第二帧写上:gotoAndPlay(1);
如果你要碰撞到那块黑色区域就到下一关的话就写;
if(_root.MC.hitTest(root.黑色区域)){
             gotoAndStop(2)
              }

TOP

你这个移动有问题啊.最好用循环语句

在第一帧写上:if(Key.isDown(Key.方向)){
                    MC._x-=?
                    };
第二帧写上:gotoAndPlay(1);
如果你要碰撞到那块黑色区域就到下一关的话就写;
if(_root.MC.hitTest(root.黑色区域)){
             gotoAndStop(2)
              }

TOP

支持下

TOP

发新话题