发布网友 发布时间:2022-05-14 10:41
共1个回答
热心网友 时间:2023-10-14 10:47
打字效果很简单啊……不过你的方法调用了太多我没用过的方法,所以看不太懂……
给你个很简单的方法:
——————————————————————————————————————————
首先,在舞台上建立一个动态文本框,随便打一个字,设置好你的字体、大小等等(当然也可以用TextFormat在这设置,不过那样更方便),文本框的位置就是要显示打字的位置,设置好以后把里面的文字删掉。文本框的实例名为“txt”,也可以自定,不过代码里也需要做相应的更改。
建立文本框的方法:
然后在时间轴上写代码:
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.display.*;
var content:String ="再别康桥——徐志摩\n轻轻的我走了,正如我轻轻的来;\n我轻轻的招手,作别西天的云彩。\n那河畔的金柳,是夕阳中的新娘;\n波光里的艳影,在我的心头荡漾。"
;
var ration:Number=50;//打字的间隔,单位为毫秒
var curWord:Number=0;//用来标记当前的字符
var allWords:Number=content.length;//总字符数
var myTimer:Timer = new Timer(ration, 0);
myTimer.addEventListener(TimerEvent.TIMER, onType);
myTimer.start();
function onType(event:TimerEvent):void {
txt.appendText(content.charAt(curWord));
curWord++;
if (curWord>=allWords) {
myTimer.stop();
trace("finish");
}
}
——————————————————————————————————————————
至于声音的问题,最好发个源文件我看看。如果你的声音是放在时间轴上的,就不可能在第一帧上放声音,声音有多长就需要多少帧,比如你是24的帧频,10秒的音乐就必须要240帧,如果你把声音单独放在一个MC里,再放在第一帧上,那样只要这个MC在播放,声音就会播放,不会和主时间轴同步,但是MC每被加载一次,声音也会被加载一次,而且你移除了MC,声音还会在后台播放,不会停止。