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;
}
} 展开
我的编程思路是: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;
}
} 展开
2个回答
展开全部
// 增加一个变量
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;
}
}
}
其他不变就行了!
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;
}
}
}
其他不变就行了!
展开全部
原因可能有两个:
1:你的flash播放器版本的问题,活血是不配,不一定是最新的版本就最好,因为你的flash文件可能用比较低的版本做的,所以播放器用最配合的最好。
2:flash本身的问题,应该是里面有动作设置或者脚本等,这些动作代码的存在就不能完整流利的播放,你可以去网上搜索下法拉盛反义软件,如闪客之锤等,把他的源代码倒出来看看。
补充:一般来说这根电脑的配置没有太大的关系,因为flash是一种很普通的视频文件。祝你好运!
1:你的flash播放器版本的问题,活血是不配,不一定是最新的版本就最好,因为你的flash文件可能用比较低的版本做的,所以播放器用最配合的最好。
2:flash本身的问题,应该是里面有动作设置或者脚本等,这些动作代码的存在就不能完整流利的播放,你可以去网上搜索下法拉盛反义软件,如闪客之锤等,把他的源代码倒出来看看。
补充:一般来说这根电脑的配置没有太大的关系,因为flash是一种很普通的视频文件。祝你好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询