[转载]利用ActiveX技术,跟踪鼠标
信息来源:网络大家经常用函数来实现移动效果,总使程序变的比较繁琐。实际上有个ActiveX控件就能替大家解决.
就是DirectAnimation.PathControl,可根据设定的轨迹移动某个外在的元素如Span.自带的轨迹有:
Oval(x,y,x-rad,y-rad)//椭圆
PolyLine(n,pointsArray)//折线
Polygon(n,pointsArray)//多边形
现演示Oval和PolyLine,下面绕图片打转将演示Polygon.
源代码如下:
<SCRIPT language=JavaScript>
var cirRad =100,cirSpd =500,X1 = 0,Y1 = 0,X2 = null,Y2 = null,first=0,timer = null
//cirRad 圆的半径 cirSpd 画圆的速度 first 第一次运行标志
function searchMouse() {
if(X2 ==null)return;
if((X2 == X1)&&(Y2 == Y1)){
if(first==0){//如果第一次运行
first=1;
pthControl.stop();//停止
pthControl.Oval(X1-cirRad/2,Y1-cirRad/2,cirRad,cirRad)//设置圆形轨迹
pthControl.Duration=cirSpd/1000 //设置运行周期
pthControl.play();//运行
clearTimeout(timer);
timer=setTimeout("first=0;",cirSpd);//一圈后将first清零
}
} else{
movepoint = new Array(X1,Y1, X2,Y2);//从前一个位置移动到当前鼠标位置
pthControl.stop();//停止
pthControl.PolyLine(2,movepoint);//线性轨迹
pthControl.Duration=0.1;//设置运行周期
pthControl.play();//运行
X1 = X2;
Y1 = Y2;
}
}
document.onmousemove=new Function("X2 = event.x;Y2 = event.y;");
</SCRIPT>
<BODY bgColor=black onload="setInterval(searchMouse,100)" text=red>
<SPAN style='position:absolute;width:1cm;cursor:hand;color:gold;font-size:10pt;' id=span1>★</SPAN>
<OBJECT classid=CLSID:D7A7D7C3-D47F-11D0-89D3-00A0C90833E6 id=pthControl>
<PARAM NAME="AutoStart" VALUE="1">自动执行
<PARAM NAME="Repeat" VALUE="1">//重复
<PARAM NAME="Bounce" VALUE="0">//反弹
<PARAM NAME="Duration" VALUE="0.1">//周期
<PARAM NAME="Target" VALUE="span1">//作用对象
<PARAM NAME="TimerInterval" VALUE="0.01">//运行时钟间隔
</OBJECT></BODY></HTML>
页:
[1]