flash - 在AS3中通过声像动态定位声音

标签 flash actionscript-3 audio

我正尝试在Flash中制作一个迷你游戏,说明蚊子被打碎了,我希望蚊子声像在玩家面前一样摇动(因此,如果蚊子在屏幕右侧,则摇动声波为1,并且-1)。

问题是,我只能在播放方法中使用声音变换,如果我想更新蚊子的位置(在Enterframe上以24fps的速度进行播放),则会留下很多声音在播放。

tl; dr,是否可以在闪光灯中动态平移声音?

最佳答案

当然有可能,而前几天我刚好在做类似的事情。

我创建了一个包装声音的类,并添加了声像,音量等属性,以便可以保持状态。

播放声音时,只需创建一个新的SoundTransform并将其分配给新创建的SoundChannel即可。然后,根据包裹的声音类中的pan值在SoundTransform上设置pan属性:

public class SoundWrapper
{
    private var _pan:Number;
    private var _sound:Sound;
    private var _soundTransform:SoundTransform;
    private var _soundChannel:SoundChannel;

    public function SoundWrapper(sound:Sound):void
    {
        _sound = sound
    }

    public function playSound():void
    {
        _soundChannel= _sound.play();
        _soundTransform = new SoundTransform();
        _soundTransform.pan = pan;
        _soundChannel.soundTransform = _soundTransform;
        _soundChannel.addEventListener(Event.SOUND_COMPLETE, onSoundComplete);
    }

    public function onSoundComplete(e:Event):void
    {
        playSound();
    }

    public function stop():void
    {
        if(_soundChannel)
        {
            _soundChannel.stop();
            _soundChannel.removeEventListener(Event.SOUND_COMPLETE, onSoundComplete);
        }
        _soundTransform = null;
        _soundChannel = null;
    }

    public function set pan(value:Number):void
    {
        _pan = value;

        if(_soundTransform)
        {
            _soundTransform.pan = _pan;
        }
    }

    public function get pan():Number
    {
        return _pan;
    }
}

关于flash - 在AS3中通过声像动态定位声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7408784/

相关文章:

image - AS3 平铺背景与不同的瓷砖

.net - 是否有用于通用音频文件解码的 .NET 库?

flash - 在Flash CS4中嵌入YouTube视频?

flash - as3中类定义前的方括号

android - 如何在Android Air应用程序中通过as3打开Instagram页面?

javascript - 如何根据 x、y 和 z 在 3D 矩形中画线?

node.js - 我有来自 ffmpeg 的音频数据流,如何在浏览器中播放它?

javascript - 我正在尝试显示文本,单击时播放音频,当声音结束时出现新文本,单击时播放新音频

javascript - windows.onload 事件

actionscript-3 - as3 在没有事件的情况下调用事件函数?