论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: 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 19:21:14

  昨天看了一个高手(反正都比我高)写的关于“梵天”网站上的始终指向鼠标的箭头的制作方法。可惜源文件是使用的FLASH 2004的我用的MX打不开……而且我刚学了几个月,菜的很,里面的很多指令我都看不动。所以我自己用了一早上的时间自己用MX做了一个相对简单的相同的效果。让和我一样菜的闪鸟也乐一下。
http://www.flash8.net/bbs/UploadFile/20042181251258268.swf
开始了(第一次讲课,紧张中……)

新建一个mc元件“箭头”
进入“箭头”元件的编辑。在元件的中心再画一个方向水平向右的箭头,然后选中该图形,F8,转换为新的影片剪辑,命名jt(其实该元件可以任意命名,不影响使用,只是远见实力的名称才影响使用。),然后把刚刚转化元件在“箭头内的实例名称命名为“jt”,alpha属性(即透明度)设置为0 。再选中第二帧,F5,增加一个延续帧。
***注重,所有操作始终是在元件“箭头”内,不对主场景进行任何编辑,这样有利于以后的维护和元件的再利用。
在元件“箭头”内新建一个图层,命名为as。在as的第二帧按F7,转化为空白要害帧。
开始写程序。
在as图层的第一帧写如下程序:

dy=jt._y-_ymouse;
dx=_xmouse-jt._x; //在flash的平面坐标系中,X轴坐标于数学坐标一样,向右递增 。Y坐标相 反,向下递增。所以这两个求鼠标与元件坐标差的 公式书须相反。
tan=function(y,x){
return Math.atan2(y,x)*180/Math.PI}; //自定义一个函数,该函数通过给出 参数Y,X 求出夹角,并以角度制度表示。
i=i+1;

写AS图层第2帧的程序:

jiao=tan(dy.dx); //利用刚刚在第一帧自定义的函数,计算出鼠标与元件jt (即画出箭头)的夹角。
duplicateMovieClip(jt,jt+i,i); //复制一个jt,并命名为jt+i(既jt1),深度i。
setProperty(jt+i,_alpha,100); //把刚才复制出的jt+i的透明度设置为100,就是不透明阿。
因为是复制,所以也继续了原来元件实例的属性--透明度0。
不修改的话还是看不到。
setProperty(jt+i,_rotation,-jiao); //类似于上一个命令.不同的是修改的角度,减去了刚 才已经计算出的和鼠标的角度差.
FLASH AS中的角度和数学的不同,为逆时针为加.所有用-而不是+.

if(i=2){i=0}; //限制了复制的数量.
gotoAndPlay(1); //假如不使用此语句可能会有跳帧感觉.

整理一下, 直接复制就可以用了.
第一帧:

dy=jt._y-_ymouse;
dx=_xmouse-jt._x;
tan=function(y,x){
return Math.atan2(y,x)*180/Math.PI};
i=i+1;

第二帧:

jiao=int(tan(dy,dx));
duplicateMovieClip(jt,jt+i,i);
setProperty(jt+i,_alpha,100);
setProperty(jt+i,_rotation,-jiao)
if(i=2){i=0};
gotoAndPlay(1);

终于完成了,真不幸啊,刚才写到一半的时候忽然停电……导致了……5555
行了,把“箭头”拖到主场景上,多拖上几个去也没有问题。因为所有的AS都写在元件中,没有写在ROOT里的,所以也可以用到其他的FLA文件中。
见笑了,这个效果的制作有很大的偷懒的嫌疑,也是不得以而为之,小弟实在是有点菜。
见笑。

点击浏览该文件

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