actionscript-3 - AS3 : Mouse Speed affecting volume

标签 actionscript-3

我使用此代码通过 ENTER_FRAME 函数检测鼠标的速度。鼠标的速度会影响我循环播放的 mp3。通过使用ENTER_FRAME,它会根据帧速率进行更新,并使音乐听起来非常断断续续和困惑。

有没有办法减轻音量(仍然使用 ENTER_FRAME),或者我的 mp3 总是会受到这种影响吗?

var mySound1:Sound = new Sound();
mySound1.load(new URLRequest("AStringsMinor.mp3"));

var myChannel1:SoundChannel = new SoundChannel();
var myTransform1:SoundTransform = new SoundTransform();
myChannel1 = mySound1.play(0, 999);

var prevPt:Point = new Point(mouseX, mouseY); 

addEventListener(Event.ENTER_FRAME, mouseSpeed); 

function mouseSpeed(e:Event)
{     
    var xspeed:Number = Math.abs(mouseX - prevPt.x);     
    var yspeed:Number = Math.abs(mouseY - prevPt.y);    
    var speed:Number = (xspeed + yspeed) / 100;
    prevPt = new Point(mouseX, mouseY);    

    myChannel1.soundTransform = myTransform1;
    myTransform1.volume = speed;
}

最佳答案

我相信您应该通过平均大约 5 秒的鼠标速度来缓解速度变化。

var speeds:Vector.<Number>;
var spn:int; // how many are there
var spi:int; // current index
// into initialization code:
spn=Math.ceil(5.0*stage.frameRate); // 5.0 is a number of seconds to average
speeds=new Vector.<Number>(spn,true);
for (spi=spn-1;spi>=0;spi--) speeds[spi]=0; // explicit init
spi=0;
// the function gets updated
function mouseSpeed(e:Event)
{     
    var xspeed:Number = Math.abs(mouseX - prevPt.x);     
    var yspeed:Number = Math.abs(mouseY - prevPt.y);    
    var speed:Number = (xspeed + yspeed) / 100;
    prevPt = new Point(mouseX, mouseY);    
    speeds[spi++]=speed; // record current speed
    if (spi==spn) spi=0; // wrap
    speed=0;
    for (var n:int=spn-1;n>=0;n--) speed+=speeds[n]; // sum all recorded speeds
    myChannel1.soundTransform = myTransform1;
    myTransform1.volume = speed/spn; // and now average it
}

关于actionscript-3 - AS3 : Mouse Speed affecting volume,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15385374/

相关文章:

actionscript-3 - AS3 - 如何将链接放入谷歌可以索引的应用程序中?

c++ - 对应于 AS3 Number (Integral) 的 C++ 数据类型是什么

javascript - AS3 - 使用 ExernalInterface.call 重置 JS 计时器

actionscript-3 - AS3 SoundChannel 函数中音频的位置

actionscript-3 - 在寻路方面需要一些帮助!

actionscript-3 - AS3 ioError 仅在某些浏览器上出现,这是为什么?

xml - ActionScript 从矢量图形中绘制代码?

actionscript-3 - AS3 位图填充问题

apache-flex - as3中的文字转语音

xml - 在 Actionscript 3 中添加子级的循环