Flash AS 实例进阶 as打字效果

所属分类: 媒体动画 / Flash教程 阅读数: 107
收藏 0 赞 0 分享

  前面讲了“图”和“声”的一般调理,这节我们开始琢磨“字”,要说这“字”,大号叫文本, 还有三种类型:静态文本、动态文本和输入文本,下面我们就把这三样捏到一起作个综合练习实例。

  源文件下载

  >>>>>点击查看动画效果<<<<<

  实例2-3打字效果

  ( 1 )基本思路

    ① 建一个输入文本,用来键盘输入或复制粘贴一段文字。

   ② 为输入文本制作一滚动条,上下各一个按钮,中间一个“滑块”,“滑块”要和文本同步垂直变动,并相互作用,编写这段脚本可是够累人的。

   ③建一个动态文本,根据指令来显示输入文本的内容。

   ④ 建一个按钮,令动态文本开始“表现 ” 。

   ⑤ 在帧上写脚本,让动态文本的按咱要求“演”。

   ⑥ 上面只是说到要用输入文本和动态文本,不是说要用 3 样吗, 那在就在按钮上输入“打字”俩字,别看字少,可是用到了一种类型,这下齐了。

  ( 2 )新知识点

  my_txt.scroll // 定义文本在文本字段中的垂直位置。

  my_txt.maxscroll;// my_txt.scroll 的最大值。

  my_str.substring// 返回一个字符串。

  arguments.length// 实际传递给函数的参数数量。

  Math.random()// 返回一个 0-1 之间的随机数。

  Math.ceil()// 对数字或表达式按进位法取整。

    (3)实例说明

   ① 建一输入文本,变量名: shuru 。

   ② 建一动态文本,变量名: shuchu 。

   ③从公用库中拖入一按钮,点开并插入“打字”二字。

   ④ 为输入文本作一滚动条,包括上下按钮和一个类型为 MC 的“滑块”。

    ( 4 )编写动作脚本

  ①在“打字”按钮上输入:

  on (press) {

  Play();

  }

  ② 在滚动条的向上按钮上输入:

  on(release){

  shuru.scroll-=1;// 可显示的文本垂直下移一个单位,即向上多看一行。

  }

  ③ 在滚动条的向下按钮上输入:

  on(release){

  shuru.scroll+=1;// 可显示的文本垂直上移一个单位,即向下多看一行。

  }

  ④ 在滚动条的“滑块”上输入:

  onClipEvent (load) {

  shang = this._y;// 设此变量作为“滑块”的初始垂直位置

  zuoyou = this._x;// 设此变量作为“滑块”的初始水平位置

  N = 30; // 设此变量作为“滑块”的垂直位置变动的最大值,本例中其实是一以常量状态存在。

  t = 0; // 设此变量作为 if 语句的判断条件

  }

  onClipEvent (enterFrame) {// 按帧频循环执行以下动作

  if (t == 0) { 满足条件执行此大括号内动作

  Ni = (N+2)*(_root.shuru.scroll-1)/(_root.shuru.maxscroll);// 用 N 乘于当前显示行占总行数的比例,再赋值给变量 Ni ,其中的“ -1 ”和“ +2 ”是为较准确显示而加的修正值。                              

  this._y = shang+Ni;// 此 MC 的垂直位置依 Ni 而变化。

  } else {// 不满足条件执行此大括号内动作

  Ni = this._y-shang; 将当前垂直位置与原始位置的差赋值给 Ni

  _root.shuru.scroll = Ni/N*(_root.shuru.maxscroll)+1;// 用 Ni 占 N 的比例乘于文本的总行数的值赋予现实显示的行数。

  }

  }

  on (press) {

  nextFrame();// 转到下一帧,这里是为要取得的不同的外观效果。

  t = 1;// 为 if 语句判断条件的变量赋新值

  startDrag(this, true, zuoyou, shang, zuoyou, shang+N); // 鼠标拖动 MC ,并限制在括号的设定范围内。

  }

  on (release,releaseOutside) {

  prevFrame();// 转到上一帧

 stopDrag();// 停止拖动

  t = 0;// 为 if 语句判断条件的变量赋原值

  }

  ⑤在“滑块”上的第1帧上输入:

  stop();

  ⑥主时间轴第 1 帧上输入:

  i = 0;

  shuru = "";

  nextFrame(); //变量初始化后转到下一帧停止。

   ⑦ 主时间轴第2帧上输入:

  shuchu = shuru.substring(0, i)+"_";// 将输入文本的字符串变量的的第 1 个到第 i+1 个的字符,同时在后面加个"_"组成的一个字符串赋给动态文本的变量。

  gotoAndPlay(Math.ceil(Math.random()*4)+2); 避免死板显示,将播放头的跳转位置用随机函数值来确定。

  shuchu.scroll = shuchu.maxscroll;// 设定显示行,使得动态文本框显示满后向上滚动。

  i++;

  if (i>shuru.length) { 当变量 i 大于输入文本的总字符数时,执行以下命令。

  stop();

  i = 0;

  }

   ⑧ 主时间轴最后一帧上输入:

  gotoAndPlay(2);

  ( 5 )要点分析

   ①这里的输入文本“滚动条”实现了交互性功能,“滚动条”由 3 部分组成,上下各一个按钮,中间一个“滑块”,当用上下按钮改变文本的垂直位置时,中间的滚动条自动变化,当按住“滑块”的时候 可以在确定的范围呢拖动,文本位置也相应变化,其工作原理就是用一变量判断后执行,取文本位置后改变“滑块”位置,还是取“滑块”位置后改变文本位置。

   ②shuchu = shuru.substring(0, i) ,是变量“ shuchu ”取得截自变量“ shuru” 的一段字符串, substring() 在小扩号里的参数,前一个是字符串中字符的索引号,从 0- — n-1 , n 是字符总数,如这个字符串有 5 个字符,索引号则是 0 、 1 、 2 、 3 、 4 ,这和以后要学习的数组索引是一样的;后一个参数是要获取的字符个数,如字符串有 5 个字符,,当此参数设定为 5 则全部获得,因为此实例用变量 i 作为参数,且是以 1 为步长递增的 , 每循环一次就多显示一个字,看的效果是象打出一个新字,其实是 m+1 个字段长的字符串覆盖了 m 个字段长的字符串。

   ③ gotoAndPlay(Math.ceil(Math.random()*4)+2) ,其中的 (Math.ceil(Math.random()*4 就是要取得一个 0-4 的随机整数,过去我们用 random(value) ,但人家软件说不鼓励在 Flash 5 中使用,咱就跟着新的走。添点麻烦来 gotoAndPlay ,就是为有点快慢不一样,象打字那回事似的。

  ( 6 )小结

   本讲介绍了输入文本和动态文本,应该说讲了普通的使用方法,好多的设置都是在属性面板里完成的,只是用脚本控制字符文本的显示,而全 AS 及更复杂控制就要用 TextField 类。这个实例的输入文本滚动条对学习脚本编写应该有一定的启发作用,其实用组件有现成的,因为现在要用我们前面学到的知识来完成,才要这样写,而且对今后的应用也可能有帮助,同样的原理可以控制影片和音乐的进度等。

  ( 7 )课后练习

   修改源文件,让动态文本不是一个字一个字的显示,而是一行行显示,范例效果:

  >>>>>点击查看动画效果<<<<<

  练习2-3

  这篇教程为“Flash AS 实例进阶教程”的一部分。查看全套教程>>>>。

更多精彩内容其他人还在看

FLASH CLASS的基本编写规范

继续回来写教程。本来不想写这节的,因为这节的内容很多书上或者网上资料都有,而且写的比我要详细正规得多。但后来想想,还是写吧!为啥?凑篇幅呗~啊哈哈~而且后面几节要结合接宝的范例游戏,具体分析它的几个CLASS,所以,还是用一节把CLASS的写法说一下。可能我对CLASS
收藏 0 赞 0 分享

flash教程:使用拆分数字和文字的函数

flash的小函数:拆分数字和文字的函数. 以下为引用的内容: /* * 拆分数字和文字 */ public function splitNS(s:String):Object{ var tNum:String=""
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例六

相关文章: 通过实例学习Flash AS3.0——案例五 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

用Flash AS制作逼真的下雨动画效果

Flash教程:用Flash AS制作逼真的下雨动画效果 先看下效果:(附.swf文件) 制作过程 一、新建一图层,大小随意; 二、新建元件(影片剪辑): 1、制作雨滴并下落。使用直线工具(颜色设为灰色,1像素)画一短直线,使用选择工具将直
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例五

相关文章: 通过实例学习Flash AS3.0——案例四 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下
收藏 0 赞 0 分享

Flash CS3制作Fla形式的组件

  本文为大家介绍如何制作Flash CS3中的[*.fla]形式的的组件(Component)。这种组件和SWC组件不同,它和CS3自带的组件一样能够双击进入组件里面编辑,是Flash CS3新增加的一种组件形态。下面我们制作一个MyButton组件为例子。   制作步骤:
收藏 0 赞 0 分享

通过实例学习Flash AS3.0——案例四

相关文章:通过实例学习AS3.0——案例三 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
收藏 0 赞 0 分享

通过实例学习flash AS3.0——案例二

相关文章:通过实例学习AS3.0 --案例一 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢
收藏 0 赞 0 分享

通过实例学习AS3.0——案例三

相关文章:通过实例学习flash AS3.0——案例二 首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知
收藏 0 赞 0 分享

通过实例学习AS3.0

首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。 水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。 下面进入正题:
收藏 0 赞 0 分享
查看更多