想做一个flash打字效果。网上的方法要不是太繁琐,要不然就是各种遗漏。在这边做一个行之有效的flash做打字效果教程。
首先我用的是最新版本的flash professional cc 。但是应该和其它版本的界面略有不同。但是方法大致一样。
步骤一,利用flash的动态文本框。
如图把一个普通的文本框拖入舞台上。然后设置其中的
1位置:变量名称(这边设置为newtext)
2位置:下拉框中选第二项“动态文本”
3位置:选多行文本
注:这边有一个flash的不人性化的地方,就是不能读取中文的问题。如果你想要用中文的话,请一定要设置字体为中文字体(比如宋体)。要不然出大问题,脚本识别不来
以上就建立好了一个动态文本。
步骤二:我们在flash下面的时间栏下面的第5秒位置插入一个关键帧
插入方法为在第五秒位置处右键单击,选择插入关键帧。
步骤三:创建一个脚本层,来在各种时间段控制动态文本框所要显示的文字
下面先说一下我们要写的脚本的思路(供参考):
1,在第一帧的时候我们用一个东西(变量)保存当前屏幕上文本框的所有文字。
2,同样在第一帧,用一个全局的计数器,来控制每次文本框需要显示到个字,设置初始值为1也就是第一次显示的时候文本框只显示到第一个字。
3,本来到第二步,启动flash后我们会看见屏幕上打印了全部文本的第一个字,然后就停在那边结束了,这个不是我们想要的结果。
我们想要每过0.5秒打印下一个字,那么就在时间轴的第五秒位置插入一个脚本。让程序执行到第五秒的时候把计数器加1,然后再跳转会第2帧继续执行程序
(注:我们不能跳转回第一帧,因为第一帧里面我们设置了很多初始的东西如果跳回去就会又设置一遍,比如那个计数器会被不断的重新设置为1,文字就不会继续打印下去了)
这样就会有一个循环在不停的打印下一个字。
4,在所有字在屏幕中被打完之后。这个消耗资源的循环停止下来。
步骤四:在脚本层第一帧插入脚本,window系统你可以按F9,mac系统下在第一帧的地方右键,然后在右键菜单中点击动作(Actions)
然后在跳出的脚本编辑器里面填写如下代码
var textlen = 1;// 设置一个计数器,让它最开始为1,打印第一个字符
var text = newtext.text;// 设置一个变量text,用来保存我们舞台上动态文本框的所有文字内容。
步骤五:在文本层的第二帧处添加一个空白帧
然后写入如下脚本
if(textlen<text.length && textlen!=0)// 如果逐一打印的文本长度没有超过原始文本的长度,并且逐一打印的字数不可以为0
{
newtext.text = text.substr(0,textlen);// 文本显示从第0个文字到当前保存的计数所在的文字期间的所有文字
textlen = textlen+1;//计数加一,比如原来是1,加1就为2,下次就会打印到第二个字。
}
else
{
textlen = 0;//如果全部文本都显示完毕之后,之后每次逐步打印0个字符
}
步骤六:在文本层,第五帧创建空白帧,并且添加如下脚本
gotoAndPlay(2);
到此全图如下,你可以ctr+回车键来测试你的制作结果了