| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > Flash文字效果 > 文章正文 用户登录
蚂蚁社区:赤裸的
解析物体的振荡运
运动规律的一些基
flash asp大头贴出
浅谈AS与物理运动
应用Key对象控制元
运动残影效果教程
键盘控制物体运动
初级物理模型的构
惯性运动 弹簧精确

运动出现的文字           

运动出现的文字

作者:佚名 来源:闪吧 作者: jgw6447 更新:2007-1-13 20:35:47 错误报告 我要投稿

先看看效果:

点击浏览该文件
这是一个类似于打字效果,却又与之有所区别的动画效果(广泛应用于网站制作中的字幕效果,有时候banner中也会用到)。下面我们将一步步的学习其制作方法。
你能学到的内容包括:动态文本,输入文本的应用;关于字符串的一些函数;复制影片剪辑;删除复制出来的子影片剪辑;读取和修改影片剪辑的某些属性;利用if判断语句对FLASH进行流程控制等等。

步骤1:

先看一看整体的图层布局(如图一):共四层:从上到下:第一层是button层,放的是一个开始按钮;第二层是AS层:没有其他元件,是专门用来添加AS代码的图层;第三层是text层,放的是一个输入文本框;第四层是MC层,放的是一个实现文本动态出现的MC(下面会具体介绍其做法)。


按此在新窗口浏览图片

步骤2:

准备各种需要的元件:

a)首先做简单的,制作一个开始按钮(你可以精心制作,搞的漂亮一点),放在单独的图层中,图层名为button;
b)制作一个输入文本框,其变量名为:text。定义变量名的方法   如图二   所示。也把他放在一个单独的text图层中;

按此在新窗口浏览图片

c)制作最重要的一个元件,也就是产生动态效果的MC:新建一个MC元件,命名为wenben,进入其编辑状态,在编辑区做一个动态文本框,变量名为:tt(给动态文本添加变量名的方法与图二类似)。大概够容纳一个字母的大小,然后右键选中这个动态文本框,将他也转化为MC元件,名称为:wb   ,实例名为:b。(给MC定义实例名的方法参看图四)接着添加一个新的图层(图层属性为引导层),画一条直线,然后让wb这个元件沿这个直线做位移渐变,中途再适当添加关键帧,让他的大小,角度作些变化。完成后的wenben   这个MC的各个关键帧的情形参看图三(系列)。说明一点:在第八和第十六帧之间,wb做的是旋转两周的运动。

按此在新窗口浏览图片

按此在新窗口浏览图片

按此在新窗口浏览图片

按此在新窗口浏览图片


d)回到主场景新建一个图层,名为MC。把wenben   放入其中适当位置(具体参看后面提供的源文件),添加实例名为a(方法参看图四)

按此在新窗口浏览图片

e)将上述所有图层延长到20帧;

至此,所有相关元件准备完毕。


步骤3:
开始着手最关键的部分,添加AS代码:

新建一个新的图层,图层名为AS,共20帧:

第一帧:
text="happy   new   year!"//初始化输入文本框的内容,这一内容可以在SWF文件中修改;
stop();


第二帧:
ll   =   length(text);//获取输入文本的字符串的长度(其具体用法参看后面给出的相关语句的用法解释)
i   =   1;//初始化用于变量i的值;

第三帧:
duplicateMovieClip("a",   "a"   +i,   i);//复制实例名为a的影片剪辑;
setProperty("a"   +   i,   _x,   getProperty   (   "a"   +i,   _x   )   +(i*10));//设定每个子影片剪辑的X坐标值,实际上也就是设定每个字母之间的间隔。
set("a"   +   i   +   "/b:tt",   substring(text,   i,   1));//指定每个子影片剪辑中的b元件内tt这个动态文本的内容为text这个输入文本中的第i个字符(关于这个函数的具体用法,参看后面给出的相关语句的用法解释)。
i++;//变量i自加;

第十帧:
if   (i   ==ll+1)   {
   gotoAndPlay(20);//如果text内的内容全部显示过了,跳到20帧;
}   else   {
   gotoAndPlay(3);//如果还没有全部显示过,则跳回第3帧继续显示;
}


或者第十帧的代码可以改为:
if   (i   ==ll+1)   {
   stop();//如果text内的内容全部显示过了则直接停止动画,不需要再跳转;
}   else   {
   gotoAndPlay(3);//如果还没有全部显示过,则跳回第3帧继续显示;
}


第二十帧:

stop();//整个动画停止;


开始按钮:

on(press){
   for(i=1;i<=ll+1;i++){
   removeMovieClip("a"+i);//在开始播放新的字符串的出现前,先清除前一次的字符串;
   }
   gotoAndPlay(2);//开始播放第二帧
}

这样就差不多全部结束了,ctrl+enter测试!





再给出相关语句的具体用法解释(整理自AS字典):1.
substring(string,   index,   count)   
参数:
string:字符串值,表示要抽取的字符串值。   
index:数字值,表示要抽取字符串的开始位置。   
count:数字值,表示要截取字符串的长度。(可选)   
返回:   一个字符串值   
介绍:   使用   substring   语句,可以获取指定字符串对象中从指定的位置开始截取指定长度的字符串信息。参数(string)指定要抽取的字符串值。参数(index)指定开始截取字符的位置,设置为   0   表示从字符串的第一个字符开始,如果设定该值为负数,则表示起始位置从字符串的尾部计起。参数(count)指定截取字符串的长度,如果省略该参数,则表示截取自开始位置起后面的所有字符信息。返回的字符串值,表示抽取到的字符串信息。   

说明:此函数自FLASH   MX起,已经不建议被使用,其功能可以被一个新函数mystring.substr代替,具体参看我整理的这个文章中的第10点:

http://www.flash8.net/dispbbs.asp?boardID=1&ID=145656

2.length(expression)   
参数:
expression:字符串值,表示要获取长度的字符串值。   
返回:   一个数字值   
介绍:   使用   length   语句,可以获取指定字符串的长度信息。参数(expression)指定要获取长度的字符串值。返回的数字值,表示获取的字符串长度结果。   
最后提供源文件:

点击浏览该文件



还有整个教程的打包下载(123K):


点击浏览该文件


代码我已经作了详细解释,不知道其他的有没有什么疏漏?如果你做不出预期的效果,建议你对照教程和我给出的源文件仔细查看。

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。