我的问题是我想实现击键声音(它叫做“TextBeep”,连接名称也是“TextBeep”,它是.WAV文件),同时正在播放打字机效果文本。一旦出现所有文本,声音应该停止。
我该怎么做?我一直在寻找年龄,但只有ActionScript 3.0的内容,而且我正在使用的代码没有。我使用的是Adobe 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}
};
如果有人可以告诉我如何获取它,那么它可以在帧开始后立即自动启动并且文本开始出现,然后在所有文本出现之后停止声音会很好。另外,如果你不介意,你可以解释你是如何为未来的项目做的。谢谢!
答案 0 :(得分:1)
所以声音效果不是单一的“点击”,而是多次且足够长,不需要循环,对吧? 使用setInterval而不是enterFrame,你可以更好地控制打字速度......
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);
};