flash,as3,如何编程控制声音配合动作播放,谢谢

按我的程序,按下移动方向键之后声音不断重叠播放,混乱无比。我的编程思路是:1按下方向键时声音循环播放,不会重叠;2松开按键时,声间播放关闭。思考中,请问要如何修改程序如下... 按我的程序,按下移动方向键之后声音不断重叠播放,混乱无比。
我的编程思路是:1按下方向键时声音循环播放,不会重叠;2松开按键时,声间播放关闭。思考中,请问要如何修改
程序如下:
var theMove:MoveSound = new MoveSound();

public function Main() {
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
stage.addEventListener(KeyboardEvent.KEY_UP, keyPressedUp);
stage.addEventListener(Event.ENTER_FRAME, movemoo);
}

function keyPressedDown(event:KeyboardEvent) {
if (event.keyCode==37) {
leftArrow=true;
theMove.play();
} else if (event.keyCode == 39) {
rightArrow=true;
theMove.play();
}
}

function keyPressedUp(event:KeyboardEvent) {
if (event.keyCode==37) {
leftArrow=false;
} else if (event.keyCode == 39) {
rightArrow=false;
}
}

public function movemoo(event:Event) {
var speed:Number=5;
if (leftArrow) {
moo[num-1].x-=speed;
} else if (rightArrow) {
moo[num-1].x+=speed;
}
}
展开
 我来答
抹茶微甜aV
2011-05-06 · TA获得超过812个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:318万
展开全部
// 增加一个变量
var _sc:SoundChannel = null;

// 修改这个函数
function keyPressedDown(evt:KeyboardEvent):void{
if(evt.keyCode == 37){
leftArrow = true;
rightArrow = false;
if(!_sc){
_sc = theMove.play();
}
} else if(evt.keyCode == 39){
leftArrow = false;
rightArrow = true;
if(!_sc){
_sc = theMove.play();
}
}
}

// 修改这个函数
function keyPressedUp(evt:KeyboardEvent):void{
if(evt.keyCode == 37){
leftArrow = false;
if(_sc && !rightArrow){
_sc.stop();
_sc = null;
}
} else if(evt.keyCode == 39){
rightArrow = false;
if(_sc && !leftArrow){
_sc.stop();
_sc = null;
}
}
}
其他不变就行了!
羿迎夏
2011-05-06 · TA获得超过548个赞
知道小有建树答主
回答量:806
采纳率:0%
帮助的人:502万
展开全部
原因可能有两个:
1:你的flash播放器版本的问题,活血是不配,不一定是最新的版本就最好,因为你的flash文件可能用比较低的版本做的,所以播放器用最配合的最好。
2:flash本身的问题,应该是里面有动作设置或者脚本等,这些动作代码的存在就不能完整流利的播放,你可以去网上搜索下法拉盛反义软件,如闪客之锤等,把他的源代码倒出来看看。
补充:一般来说这根电脑的配置没有太大的关系,因为flash是一种很普通的视频文件。祝你好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式