您的位置:首页网页设计Flash → 鼠标效果系列教程:鼠标踪迹

鼠标效果系列教程:鼠标踪迹

时间:2004/11/7 2:25:00来源:本站整理作者:蓝点我要评论(0)


            
             
              
             
            

               
               

            



            这一节,我们将使用Flash MX新增的绘图函数来做一个显示鼠标移动轨迹的效果。当鼠标移动时,会显示出它经过的轨迹,当鼠标静止时,会在它附近自动作图。见下例。



pluginspage="http://www.macromedia.com/go/getflashplayer"
type="application/x-shockwave-flash" width="550"
height="400">


  由于本例的效果完全是用动作脚本作出来的,所以只需在场景中写上“移动你的鼠标”几个字后,就可以直接进入动作脚本的编辑了。


  开始之前,先要掌握下面几个函数的使用方法。


  首先看看绘图函数如何使用:


myMovieClip.lineStyle ([thickness[, rgb[, alpha]]])


参数


thickness


  一个整数,以磅为单位指示线条的粗细;有效值为 0 到 255。如果未指定数值,或者该参数为 undefined,则不绘制线条。如果传递的值小于 0,则 Flash 使用 0。数值 0 指示极细的粗细;最大粗细为 255。如果传递的值大于 255,则 Flash 解释程序使用 255。


rgb


  线条的十六进制颜色值(例如,红色为 0xFF0000,蓝色为 0x0000FF,等等)。如果未指示该值,则 Flash 使用 0x000000(黑色)。


alpha


  一个整数,指示线条颜色的 Alpha 值;有效值为 0 到 100。如果未指示该值,则 Flash 使用 100(纯色)。如果该值小于 0,则 Flash 使用 0。如果该值大于 100,则 Flash 使用 100。


说明


  方法;指定一个线条样式,供 Flash 用于对 lineTo 和 curveTo 方法的后续调用,直到使用其他参数调用 lineStyle 为止。可以在绘制路径的中间调用 lineStyle 方法来为路径中的不同线条段指定不同的样式。


myMovieClip.moveTo (x, y)


参数


x


  一个整数,指示相对于父影片剪辑的中心点的水平位置。


y


  一个整数,指示相对于父影片剪辑的中心点的垂直位置。


说明


  方法;将当前绘画位置移到 (x, y)。如果缺少任何一个参数,则此方法将失败,并且当前绘画位置不改变。


myMovieClip.lineTo (x, y)


参数


x


  一个整数,指示相对于父影片剪辑的中心点的水平位置。


y


  一个整数,指示相对于父影片剪辑的中心点的垂直位置。


说明


  方法;使用当前线条样式从当前绘画位置向 (x, y) 绘制线条;当前绘画位置随后被设置为 (x, y)。如果正在其中绘制的影片剪辑包含用 Flash 绘画工具创建的内容,则调用 lineTo 将在该内容下面进行绘制。如果在对 moveTo 方法进行任何调用之前调用了 lineTo 方法,则当前绘画位置默认为 (0, 0)。如果缺少任何一个参数,则此方法将失败,并且当前绘画位置不改变。


  其次,就是Flash MX提供的一个创建空白影片剪辑的函数:


myMovieClip.createEmptyMovieClip (instanceName, depth)


参数


instanceName


  标识新影片剪辑的实例名的字符串。


depth


  指定新影片剪辑的深度的整数。


说明


  方法;创建作为现有影片剪辑子级的空影片剪辑。该方法的行为类似于 attachMovie 方法,但是不必为新的影片剪辑提供外部链接名称。新创建的空影片剪辑的注册点为左上角。如果缺少任意一个参数,则该方法将失败。


  第三个也是Flash MX新增的函数,这里只做个简单介绍:


setInterval( function, interval[, arg1, arg2, ..., argn] )


说明


  动作;在播放影片时,每隔一定的时间间隔,就调用函数、方法或对象。


参数


function


  一个函数名或者一个对匿名函数的引用。


interval


  对 function 或 methodName 参数的两次调用之间的时间,以毫秒为单位。


arg1、arg2...argn


  可选参数,传递给 function 的参数。


  下面就可以正式开始了。


  在时间线上点选第1帧(也只有这一帧),打开动作面板,写入如下语句:


// 显示鼠标踪迹,当鼠标静止时,随机作图
i = 0; // 显示鼠标踪迹的影片剪辑的顺序号
max = 50; // 共创建50个影片剪辑
n = 0; // 记录鼠标静止时间的累加器
// 主程序
function main() {
// 初始化变量
if (x0 == undefined) {
x0 = _xmouse; // x0,y0记录鼠标初始位置
y0 = _ymouse;
}
if (x0 == _xmouse && y0 == _ymouse) { // 如果鼠标没动
n = n+1; // 开始累加
if (n>15) { // 当累加器大于15时
star(x0, y0); // 起动随机作图程序
n = 0; // 累加器复位
}
} else { // 如果鼠标移动了
if (i>max) {
i = 0; // 如果影片剪辑数目超过最大值,再从0开始
}
// 创建一个空影片剪辑
_root.createEmptyMovieClip(i, i+100);
// 设置线条样式
_root[i].lineStyle(0, 0, 100);
// 开始画线
_root[i].moveTo(x0, y0);
_root[i].lineTo(_xmouse, _ymouse);
// 重新记录鼠标位置
x0 = _xmouse;
y0 = _ymouse;
i = i+1; // 影片剪辑的顺序号自加
n = 0; // 累加器复位
}
}

// 随机作图程序
function star(x, y) {
if (i>50) {
i = 0;
}
_root.createEmptyMovieClip(i, i+100);
_root[i].lineStyle(0, 0, 100);
_root[i].moveTo(x, y);
for (k=1; k<5; k++) { //随机产生4个点并连线
tx = x+Math.random()*80-40;
ty = y+Math.random()*80-40;
_root[i].lineTo(tx, ty);
}
_root[i].lineTo(x, y); //最后再连回起始点
i = i+1;
}
setInterval(main, 50); // 每50毫秒执行一次函数main()


  好,至此,这个作品全部完工。现在我们知道了,Flash MX已经能够让我们“凭空”制造出美丽的图案了,它的功能是越来越强大了!


源文件下载


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 Flash CS4基础入门 如何在Flash中打开一个定制的浏览器新窗口?学习ActionScript 3.0的6个好处几个小技巧精简Flash文件体积在Flash动画中添加“加为收藏”和“设为首页

人气排行 Flash游戏制作--小熊拼图用Flash实现几种镜头效果Flash制作动画知识:遮罩Flash如何做鼠标指针样式Flash制作环形文字Flash制作声情并茂的电子相册实例讲解flashMTV制作全过程(3)鼠标效果系列教程:游动的鱼