Snagit等截图工具都提供了将屏幕上的鼠标运动记录为视频的功能,其实在flash里我们也可以模拟实现这种功能。
具体效果如下:按下“开始记录”,然后随意移动鼠标,最后按下“观察我刚才的动作”,你就会看见flash开始“播放”刚才对鼠标的“录像”效果了,挺有意思吧?下面我们就来学习具体的实现过程。
首先我们需要准备一个鼠标的指针,可以通过屏幕硬拷贝或者使用截图工具的方法获得,实在不行就到控制面板中的鼠标设置中抓一个。
进入flash,将准备好的光标文件转化成mc,如图1:

图1
回到主场景中,在第一帧添加如下as:
var mcx = new array();
//建立一个用来记录鼠标横坐标值的数组
var mcy = new array();
//建立一个用来记录鼠标纵坐标值的数组
在第二帧,我们放一个文字为“开始记录”的按钮,以便确定开始记录的时间,并给按钮添加如下as:
on (release) {
gotoAndStop(3);
//按下并放开“开始记录”的按钮后,播放第三帧
}
如图2:
同时给第二帧添加如下as:
stop();
i = 1;
//设置变量初值,在后面会用到
在第三帧插入关键帧,添加下面的as:
onClipEvent (enterFrame) {
_root.mcx[i] = _root._xmouse;
//将光标运动过程中的x坐标记录到mcx数组中
_root.mcy[i] = _root._ymouse;
//将光标运动过程中的y坐标记录到mcy数组中
i++;
}
同样在第四帧插入关键帧,将最先做好的光标mc放到舞台的外面,供我们调用,并将其命名为mousec,如图3所示,并添加如下as:
onClipEvent (enterFrame) {
_root.mousec._x = _root.mcx[i];
//利用前面记录的x坐标值,来重现光标的运动
_root.mousec._y = _root.mcy[i];
//利用前面记录的y坐标值,来重现光标的运动
i++;
if (i == j) {
_root.gotoAndStop(2);
}
}
图3
这样,一个简单的鼠标运动记录效果就做好了,大家完全可以在本实例的基础上,做一些更深入的思考,实现更复杂的屏幕捕获功能。 原文件下载学习