当前位置:软件学习 > Flash >>

鼠标和mc的位置关系

/****************************
* 鼠标控制图片移动实例 *
*****************************/
////////////////////////////////
//初始化数据//
var leftest = 50;
var rightest = 350;
var startX = -50;
var startY = -3;
var click = false;
var nowTime = 0;
////////////////////////////////
//加载相关元件//

_root.attachMovie("mouseHand", "hand", 1000);
hand._x = _root._xmouse;
hand._y = _root._ymouse;
_root.attachMovie("myPic", "pic", 11);
pic._x = startX;
pic._y = startY;
pic._xscale = pic._yscale=60;
_root.createEmptyMovieClip("screen", 10);
with (screen) {
lineStyle(1, 0x000000, 0);
beginFill(0x000000, 100);
moveTo(leftest, 0);
lineTo(rightest, 0);
lineTo(rightest, 200);
lineTo(leftest, 200);
lineTo(leftest, 0);
}
pic.setMask(screen);
////////////////////////////////
//鼠标跟随//

startDrag("hand", true, leftest, 0, rightest, 200);
Mouse.hide();
////////////////////////////////
//图片控制//

var oldX = _root._xmouse;
var hSpeed = 3;//图片移动速度
var zSpeed = 1;//图片放大速度
Mouse.addListener(_root);//定义易做图
_root.onMouseDown = function() {
click = true;
hand.gotoAndStop("click");
var oldWidth = pic._xscale;
var oldHeight = pic._yscale;
var mouseX = _root._xmouse;
var mouseY = _root._ymouse;
var picX = pic._x;
var picY = pic._y;
var moveX, moveY;
pic.onEnterFrame = function() {
if (this._xscale<100 || this._yscale<100) {
//图片放大
this._xscale += zSpeed;
this._yscale += zSpeed;
//图片以鼠标点击位置为中心放大时,图片坐标的移动
moveX = ((mouseX-picX)/oldWidth*this._xscale+picX)-mouseX;
moveY = ((mouseY-picY)/oldHeight*this._yscale+picY)-mouseY;
this._x = picX-moveX;
this._y = picY-moveY;
} else {
delete this.onEnterFrame;
}
};
};
_root.onMouseUp = function() {
publicAS();
pic.onEnterFrame = function() {
//图片缩小为初始状态
if (this._xscale>60 || this._yscale>60) {
this._xscale += (60-this._xscale)/10;
this._yscale += (60-this._yscale)/10;
this._x += (startX-this._x)/10;
this._y += (startY-this._y)/10;
} else {
delete this.onEnterFrame;
}
};
};
////////////////////////////////
//控制图片//

_root.onEnterFrame = function() {
//鼠标花絮//
var elapse = getTimer()-nowTime;
if (elapse-3000>=0 && !click) {
elapse = 0;
click = true;
nowTime = getTimer();
hand.gotoAndPlay(2);
}
//左移右移//
var nowX = _root._xmouse;
if (((oldX-nowX)<0 || nowX>=rightest) && (pic._x+pic._width)>350) {
//鼠标右移,图片左移
pic._x -= hSpeed;
publicAS();
}
if (((oldX-nowX)>0 || nowX<=leftest) && pic._x<50) {
//鼠标左移,图片右移
pic._x += hSpeed;
publicAS();
}
oldX = _root._xmouse;
};
//一些公用的代码
function publicAS() {
hand.gotoAndStop(1);
nowTime = getTimer();
click = false;
}

补充:flash教程,动画技术
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,