论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

如何实现无法触摸文字的效果?

文章类别:Flash | 发表日期:2008-9-21 15:03:29

  

如何实现无法触摸文字的效果?
解决思路
这个效果又一个非凡之处在于使用了动态文本,利用AS判定文本变量,通过数组的运算赋值数标语文字的距离,从而达到无法触摸的文字效果。
具体步骤
1、??运行Flash?MX?2004,设置文档背景为黑色。
2、??新建一个影片剪辑,在影片剪辑编辑区内键入一个动态文本。在属性面板中设置文本变量为“tt”。如图3.3.89所示。

?
图3.3.89??????设置文本变量
3、??在该影片剪辑时间轴上新建一个图层2,单击矩形工具绘制一个无边框,填充颜色为透明的矩形。按F8转换为影片剪辑2,并在下面的属性面板中命名为“ff”。如图3.3.90所示。

?
图3.3.90??????设置影片剪辑属性
4、返回到场景1,单击第1帧,打开as面板,添加如下语句:
_root.onLoad?=?function()?{?
?t?=?"?this?is?flash8";
?myt?=?new?Array();
?l?=?t.length;
?for?(i=0;?i<=l-1;?i++)?{?
??myt[i]?=?substring(t,?i+1,?1);
?}
?_root.j?=?0;?
};
function?out()?{?
?_root.attachMovie("tt",?"tt"+_root.j,?_root.j);?
?if?(_root.j<=(l-1))?{?
??_root["tt"+_root.j].tt?=?myt[_root.j];?
??_root["tt"+0]._x?=?100;
??_root["tt"+_root.j]._x?=?_root["tt"+(_root.j-1)]._x+20;
??_root["tt"+_root.j]._y?=?150;
??_root.j?=?_root.j+1;?
?}?else?{
??_root.effect();
?}
}
function?effect()?{
?for?(n=0;?n<=l-1;?n++)?{
??if?(_root._ymouse-_root["tt"+_root.n]._y<=100?&&?_root._xmouse-_root["tt"+_root.n]._x<=10?&&?_root._xmouse-_root["tt"+_root.n]._x>=-10)?{
???_root["tt"+_root.n].dy?+=?(50-_root["tt"+_root.n]._y)*.3;
??}?else?{
???_root["tt"+_root.n].dy?+=?(150-_root["tt"+_root.n]._y)*.3;
??}
??_root["tt"+_root.n].dy?*=?.8;
??_root["tt"+_root.n]._y?+=?_root["tt"+_root.n].dy;
?}
}
_root.onEnterFrame?=?out;
5、上面的AS解释为:
_root.onLoad?=?function()?{//一开始加载前定义变量
?t?=?"?this?is?flash8";
?myt?=?new?Array();//myt为数组变量
?l?=?t.length;
?for?(i=0;?i<=l-1;?i++)?{//将每个字,付给到数组
??myt[i]?=?substring(t,?i+1,?1);
?}
?_root.j?=?0;//全局变量
};
function?out()?{//定义函数out
?_root.attachMovie("tt",?"tt"+_root.j,?_root.j);//加载MC?tt,重命名为"tt"+_root.j
?if?(_root.j<=(l-1))?{//判定t文本的字节数
??_root["tt"+_root.j].tt?=?myt[_root.j];//将刚才付给数组的文字逐个付给新mc"tt"+_root.j
??_root["tt"+0]._x?=?100;
??_root["tt"+_root.j]._x?=?_root["tt"+(_root.j-1)]._x+20;
??_root["tt"+_root.j]._y?=?150;
//以上是控制每个字符的位置
??_root.j?=?_root.j+1;//变量递加
?}?else?{
??_root.effect();//调用effect函数
?}
}
function?effect()?{
?for?(n=0;?n<=l-1;?n++)?{
//判定鼠标和字符间的位置
??if?(_root._ymouse-_root["tt"+_root.n]._y<=100?&&?_root._xmouse-_root["tt"+_root.n]._x<=10?&&?_root._xmouse-_root["tt"+_root.n]._x>=-10)?{
???_root["tt"+_root.n].dy?+=?(50-_root["tt"+_root.n]._y)*.3;
??}?else?{
???_root["tt"+_root.n].dy?+=?(150-_root["tt"+_root.n]._y)*.3;
??}
??_root["tt"+_root.n].dy?*=?.8;
??_root["tt"+_root.n]._y?+=?_root["tt"+_root.n].dy;
//以上是弹性效果的算法。
?}
}
_root.onEnterFrame?=?out;//调用out函数
6、请参考源文件“跳动的文字”。

非凡说明


在as上加上:
System.UseCodePage?=?true;可以支持中文字符。

视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058