flash as3.0的基础问题,已经附上代码,麻烦看看怎么改

stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
function keyDownHandler(event:KeyboardEvent):void {
var a=3;
if (event.keyCode==98) {
mc.y+=a;
mc.gotoAndStop(2);
}
if (event.keyCode==104) {
mc.y-=a;
mc.gotoAndStop(3);
}
if (event.keyCode==100) {
mc.x-=a;
mc.gotoAndStop(4);
}
if (event.keyCode==102) {
mc.x+=a;
mc.gotoAndStop(5);
}
}

人物的上下左右
这是主要代码,写在帧上的。
mc是一个5帧的剪辑(帧1不动的图片,帧2到5是上下左右原地行走的剪辑)
现在想要实现按下小键盘4个键,当弹起时开始行走(down改up),不触发别的按键就一直走,而不是现在这样要一直按着不放。这个怎么改?
另我现在这个代码在按住不放时,mc会移动,但剪辑的行走动作就不动了,松开剪辑才动,希望大侠在改成up后解决一下。

代码是写在帧上的,如必要,我会发源文件

在线等,解决额外加分,急求,拜托了

1.定义一个方向变量,dir=1,2,3,4对方四个方向。人物控制用循环事件来实现,键盘只是用来改变方向。
//控制
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
function keyDownHandler(event:KeyboardEvent):void {

if (event.keyCode==98) {
dir=1;
}
if (event.keyCode==104) {
dir=2;
}
if (event.keyCode==100) {
dir=3;
}
if (event.keyCode==102) {
dir=4;}
}
//行走
var oldDir:int=0;
stage.addEventListener(Event.ENTER_FRAME, moveHandler);
function moveHandler(e:Event):void
{
if(dir==1)mc.y+=5;
else if(dir==2)mc.y-=5;
else if(dir==3)mc.x+=5;
else if(dir==4)mc.x-=5;

if(oldDir!=dir)
{
if(dir==1)mc.gotoAndStop(2);
else if(dir==2)mc.gotoAndStop(3);
else if(dir==3)mc.gotoAndStop(4);
else if(dir==4)mc.gotoAndStop(2);
oldDir=dir;
}
}

2.为什么不动了,因为你一直在执行“gotoAndStop“这句代码,影片剪辑一直在执行跳到这一帧的事件,内部的动画还来不及执行。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-11
用EvnetFrame()。当键按下时,触发EVENTFRAME(){人物移动}监听事件。当键弹起时,remove监听。
第2个回答  2013-03-12
:D 说的不错

flash as3.0的基础问题,已经附上代码,麻烦看看怎么改
1.定义一个方向变量,dir=1,2,3,4对方四个方向。人物控制用循环事件来实现,键盘只是用来改变方向。\/\/控制 stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);function keyDownHandler(event:KeyboardEvent):void { if (event.keyCode==98) { dir=1;} if (event.keyCode==104) { ...

flash as3.0代码问题急急急!
如果您不确定哪些对象具有相同的实例名称,请尝试搜索项目以查找所有使用该实例名称的对象,并更改其中一个或多个对象的实例名称。确保在Flash项目中使用的所有类名与实际类名匹配。如果某个对象的类型为SimpleButton,则其实例名称必须在SimpleButton对象上声明,否则会导致冲突。如果上述步骤无法解决问题,请尝...

做flash用AS3.0做的贺卡,很多指令弄不了,怎么切换成AS2.0?急死人了!
如果遇到其他的脚本问题想转回到AS2.0,就点击菜单“文件”、选择“发布设置”。在发布设置页里选择“Flash”页,在第二行的“脚本”选项里选择“ActionScript2.0”,点击“确定”就可以了。可以随时更改脚本的版本。

请教flash as3 问题 (请问一下的as代码应该如何使用?我是新手,不知道如...
package是包 一个类应该被放在一个package里面,就像钱应该被放到钱包里一样。package后面定义的是该类的路径。然后一系列常用的类。 package{\/\/在AS3.0中包管理代码比如函数,类,等等,现在代码都由这个来统一管理,不用写在帧上面 import flash.display.Sprite;\/\/import 是一个导入语法,AS3.0中...

关于FLASH AS3.0代码问题
思路比较简单,切换“场景”的方法其实就是移除上一张影片剪辑,添加下一张,把你的影片剪辑放在一个数组里,然后通过一个参数作为索引指示当前正在播放的影片剪辑,然后在暂停、重播、静音等按钮的侦听函数里用这个索引指向当前影片剪辑,从而实现对正在播放的影片剪辑进行控制。这个虽然简单,但是不好说明,...

flash AS3.0 大佬们看下代码怎么改,谢谢
ab=int(a.text)+int(b.text);c.text=String(ab);

flash中AS3.0的一些问题
方法是右键点击库中小球所属的元件,选择属性,在弹出的框的中间选择“为AS3.0导出”,在类那一框填入Ball,就可以了。2、首先要import mx.utils.DisplayUtil 然后使用walkDisplayObjects函数 语法是DisplayUtil.walkDisplayObjects(displayObject:DisplayObject,callbackFunction:Function)可以遍历displayObject这个...

flash as3.0初学者,做了个滑动拼图,请问如何实现当滑块移动时,再点击...
这个楼主应该会判断吧?移动完成后,可以触发一个自定义的完成移动事件dispatchEvent("move_complete");整体思路就是这样:1、点击后移除鼠标事件,添加自定义的完成事件侦听addEventListener("move_complete",reAddMouseEvent);2、在函数reAddMouseEvent(e:Event)中重新添加鼠标侦听事件。

flash CS4 AS3.0,我想用代码来控制场景的跳转,从场景2跳转到场景1,也...
注意AS3中的gotoAndPlay必须有挂在影片剪辑上使用,它不是顶级函数,不能直接调用,如果是场景间的跳转应该在gotoAndPlay前加root才能正常运行,如下:btn1.addEventListener(MouseEvent.CLICK,replay1);function replay1(event:MouseEvent):void{ root.gotoAndPlay(1,"场景1");} 这样应该就没问题了!!

求大神看一下这段FLASH AS3.0代码哪里错了?只写了一点,就测试出错...
哥,你能贴代码而不是图片吗,我看到问题了,但是不想敲代码啊~~~主要是你没有定义那18个文本框就开始使用了,你只是定义了一个叫“question”的文本框,但代码里没有使用到这个变量

相似回答
大家正在搜