-1

我的问题是我想在播放打字机效果文本时实现击键声音(它称为“TextBeep”,链接名称也是“TextBeep”,它是一个 .WAV 文件)。一旦所有文本出现,声音就会停止。

我该怎么做呢?我一直在寻找年龄,但只有 ActionScript 3.0 和我正在使用的代码。我正在使用 Adob​​e Flash CS4。

这是我正在使用的代码:

    var effectTxt:String = _root.effect.text;
    _root.effect.text = "";
    var startEff:Number = 1;
    _root.onEnterFrame = function() {
        if (effectTxt.length>=startEff) {
            _root.effect.text = effectTxt.substr(0, startEff);
            startEff++;
        }
        else {
        delete _root.onEnterFrame}
    };

如果有人能告诉我如何获得它,那么它可以在框架开始并且文本开始出现时自动启动,然后在所有文本出现后停止声音,那就太好了。另外,如果您不介意,您能否解释一下您是如何为未来的项目做的。谢谢!

4

1 回答 1

1

所以音效不是一次“点击”,而是多次且足够长的声音,不需要循环,对吧?而不是enterFrame,使用setInterval,可以更好的控制打字速度……

var effectTxt:String = _root.effect.text;
_root.effect.text = "";
var startEff:Number = 1;
var firstLetter:Number = 0;
mySound = new Sound();
mySound.attachSound("TextBeep");
writeText = setInterval(write, 100); // 100 means one character every 1/10 of second


function write ()  {
// launch the sound just at the first letter
firstLetter != 1 ? mySound.start() : null;
// use start(0,10) if you need to loop it ten times.
firstLetter =1;
    if (effectTxt.length>=startEff) {
        _root.effect.text = effectTxt.substr(0, startEff);
        startEff++;
    } else {
      mySound.stop();
     clearInterval(writeText);
};
于 2014-04-13T13:13:13.213 回答