Adobe Flash Professional CS6如何实践多文字打字效果?

我是个在校大学生,初学flash,用的软件是Adobe Flash Professional CS6,然后最近好友生日,想用flash做一张电子贺卡给她,里面包括了好多字,学校现在只教我们简单的就是一帧一个字的方法,那样的话感觉太繁琐,而且字一多也不想去做了,于是网上去搜了一下代码,代码如下:
var id:Number = setInterval(dazi, 100);
var i:Number = 0;
var my_fmt:TextFormat = new TextFormat();
var my_str:String = "再别康桥——徐志摩"+newline+newline+"轻轻的我走了,正如我轻轻的来;"+newline+"我轻轻的招手,作别西天的云彩。"+newline+"那河畔的金柳,是夕阳中的新娘;"+newline+"波光里的艳影,在我的心头荡漾。"+newline+"软泥上的青荇,油油的在水底招摇;"+newline+"在康河的柔波里,我甘心做一条水草!"+newline+"那榆荫下的一潭,不是清泉,"+newline+"是天上虹揉碎在浮藻间,沉淀着彩虹似的梦。"+newline+"寻梦?撑一支长篙,向青草更青处漫溯,"+newline+"满载一船星辉,在星辉斑斓里放歌。"+newline+"但我不能放歌,悄悄是别离的笙箫;"+newline+"夏虫也为我沉默,沉默是今晚的康桥。"+newline+"悄悄的我走了,正如我悄悄的来;"+newline+"我挥一挥衣袖,不带走一片云彩。";
//创建动态文本
this.createTextField("my_txt", 1, 30, 10, 120, 20);
//控制文本字段的自动大小调整和左对齐
my_txt.autoSize = true;
//设置文本行距
my_fmt.leading = 6;
//设置文本的颜色
my_fmt.color = 0xFFFFFF;
//动态文本应用新文本格式
my_txt.setNewTextFormat(my_fmt);
//自定义函数
function dazi() {
//如果变量i不大于my_str的字符数
if (i<=length(my_str)) {
//动态文本显示my_str的字符(从第一个字符开始,长度为i)
my_txt.text = my_str.substr(0, i);
//变量递增1
i++;
}
//如果变量i大于my_str的字符数
if (i>length(my_str)) {
//停止 setInterval() 调用
clearInterval(id);
}
}
这是其中一个,也有其他的,发现字是能打出来,但是都是白色字体,一改字体颜色代码就不出来了,而且字大小不知道怎么改,还有别的其他感觉不方便的地方。
求好方法或者好代码~或者是不是我操作哪里错误了?
还有另一个问题,就是我在第一帧插入背景音乐,为什么后面一旦插入更多的帧背景音乐就被重叠得播放,然后测试的时候机子抽抽一般超卡,这个怎么解决?
有满意着加分~~可以的话拜托顺带给我一两个好的flash的学习网站~谢谢~~

打字效果很简单啊……不过你的方法调用了太多我没用过的方法,所以看不太懂……

给你个很简单的方法:

——————————————————————————————————————————

首先,在舞台上建立一个动态文本框,随便打一个字,设置好你的字体、大小等等(当然也可以用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 duration:Number=50; //打字的间隔,单位为毫秒

var curWord:Number=0; //用来标记当前的字符

var allWords:Number=content.length; //总字符数

var myTimer:Timer = new Timer(duration, 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,声音还会在后台播放,不会停止。

温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜