Flash as3如何制作打字动画效果

时间:2021-05-18

  本例为Flash AS3.0实例之打字效果,打字效果也是一个比较老的的效果,用来熟悉AS3.0的字符串和文本是最好的,希望能给朋友们带来帮助。

  创建文本框与以住有些不同,在AS3.0中创建文本格式如下:

  var 文本名称:TextField = new TextField();

  这样文本框就创建了,但在AS3.0中显示对象要用addChild()方法添加到显示列表中,才能在屏幕上看到它,因此就还得加上一句:

  addChild(文本名称);

  下面来看一个例子:创建一个文本,并让文本显示一些内容。

  在帧动作中输入下面的代码:

  var mytext: TextField = new TextField();

  mytext.text = "我已经创一个文本了";

  addChild(mytext);

  测试影片,你会看到一个文本:"我已经创一个文本了"显示在屏幕上了。

  文本框创建之后就可以设置其属性,调用其方法了。比如:appendText()方法,它将地在号中的字符串添加到文本的的结尾处,看下面的代码:

  var mytext: TextField = new TextField();

  mytext.width=300;

  mytext.text = "我已经创一个文本了";

  mytext.appendText(",我又加了一些内容");

  addChild(mytext);

  测试影片,看到的内容是:"我已经创一个文本了,我又加了一些内容"。你可真能干,你还能加些内容。这里我们加了一句:mytext.width=300;这设置了文本的宽度,以适应文本内容,使它能完全显示出来。

  下面进入主题,实现打字效果:

  新建flash文档,记住建AS3.0文档。

  然后,导入一个打字声音素材(只有一声的那种,附件已提供)到库中,在库中右击声音元件,点“连接”(flash8,cs3)或“属性”(flash cs4),在“为ActionScript导出“前打钩,在”类“文本框中输入一个类名称,我的名称是:dzs,”确定“后会弹出一个对话框,再”确定 “。

  下面打开帧动作面板写代码。

  首先声明一个字符串对象,将要打出的文字包含进去:

  var mystr:String = "在新春佳节来临之际,祝中国教程网的朋友们,新春快乐,万事如意,牛年牛气冲天!";

  然后,声明一个变量,存储字符串的字符数,备用:

  var strcd:Number = mystr.length;

  接下来创建文本框,设置宽度,位置和缩放:

  var mytextbox:TextField = new TextField();

  mytextbox.width = 300;

  mytextbox.x=120;

  mytextbox.y=100;

  mytextbox.wordWrap = true;//文本框向下扩展

  创建一个文本格式对象,设置文本的格式:

  var strformat:TextFormat = new TextFormat();

  strformat.bold = true;

  strformat.color = 0xffff00;

  strformat.size = 20;

  将文本添加到显示列表:

  addChild(mytextbox);

  下面创建一个函数将字符串内容添加到文本上,并调用打字声音,因为我们后面会用Timer类实例来调用函数,所以在函数的事作参数,我们用 event:TimerEvent,字符串的charAt(i)方法可以提取字符串中的第i个字符。文本框在有了内容后调用 setTextFormat()方法才会有作用,所以在这里才用它。

  var i =0;

  function xs(event:TimerEvent):void{

  mytextbox.appendText(mystr.charAt(i));

  i++;

  mytextbox.setTextFormat(strformat);

  新建一个dzs类,即我们导入的声音,它将继承Sound类的属性和方法。所以用play()播放它,这样每加一个字符就会出现一声打字声。

  var sy:dzs = new dzs();

  sy.play();

  }

  下面创建Timer类,设置每300毫秒调用一次xs函数,为文本添加一个字符,一共调用字符串的个数那么多次:

  var jg:Timer = new Timer(300,strcd);

  jg.addEventListener(TimerEvent.TIMER,xs);

  jg.start();

  测试影片,效果应该出来了。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章