| 首页 | 新闻 | 网页 | 设计 | 色彩 | 原创 | 视觉 | 素材 | 动漫 | 酷站 | 策划 | 文案 | 访谈 | 运营 | 编程 | 数据库 | 服务器 | 下载 | 图库 | 
您的位置: 幽幽天空 > 网页 > 网页制作 > Flash教程 > ActionScript教程 > 文章正文 用户登录
跟随鼠标的萤火虫
各种漂亮的鼠标UR
更改鼠标样式
鼠标后面跟随彩色
个性化鼠标右键内
如何用鼠标左右键
Flash中的鼠标绘画
Flash中的鼠标绘画
简单的检测鼠标是
关于鼠标跟随及鼠

鼠标与mc位置控制           

鼠标与mc位置控制

作者:佚名 来源:闪吧 作者: 陪你去…… 更新:2007-1-13 20:48:44 错误报告 我要投稿

要实现的效果很简单就是鼠标移动,图片移动,鼠标到顶图片也到达边界,按下鼠标,放大图片,释放缩小,简单得很吧?我觉得有时思路有时比as语法重要许多,所以我很愿意与大家分享思路


点击浏览该文件按此在新窗口浏览图片
点击开新窗口欣赏该FLASH动画![全屏欣赏]

下面来介绍一点基础知识
为了为对象(如电影剪辑_root)添加一个接听事件(Mouse事件)常用的方法如:Mouse.addListener(newListener)newListener表示要接听的对象
同样键盘也可以添加事件Key.addListener (newListener)等等,呵呵,要是不明白用用就知道了。
下面介绍一下代码含义了:
主场景第一贞:
主要是用来控制缩放的
fscommand("allscale", false);
fscommand("fullscreen", false);
Mouse.addListener(_root);//创建了mc接听鼠标事件
_root.onMouseDown = function() {
this.Oldtime = getTimer();//当鼠标按下的时候记下此时的时间
this.onEnterFrame = function() {
this.Nowtime = getTimer();
this.preTime = this.Nowtime-this.Oldtime;
if (_root._xmouse<400 && _root._xmouse>0 && _root._ymouse>0 && _root._ymouse<200) {
if (this.mc._xscale<500) {//如果图片不太大的时候执行下面语句
this.mc._xscale = this.mc._yscale += this.preTime/400;
//onEnterFrame记下的时间与鼠标按下的时间差来计算放大的倍数,也就是说时间越长放大越大
} else {
this.mc._xscale = this.mc._yscale=500;
}
};
};
_root.onMouseUp = function() {//接听鼠标释放的时候的事件
this.onEnterFrame = function() {
if (_root._xmouse<400 && _root._xmouse>0 && _root._ymouse>0 && _root._ymouse<200) {
this.vx = (0-this.mc._x)/10;//由于缩小的缘故使原来在场景中的图片
不在场景了,为了避免这个,必须在缩小的时候改变mc的坐标由于mc的0坐标(参见原文件)
不是在最中间,而是在左上角,因此mc没覆盖场景的边缘只会在右下脚出现,所以将他事先
往(0-this.mc._x)/10中的0点处运动才能最可靠保证不出现错误,请一定理解这点!!
this.vy = (0-this.mc._y)/10;
this.vv = (100-this.mc._yscale)/10;
this.mc._x += this.vx;
this.mc._y += this.vy;
this.mc._xscale = this.mc._yscale += this.vv;
};
};
在mc上的代码:主要用于控制位置的:
onClipEvent (load) {
a = 5;//初始化一系列变量
newX = 0;
newY = 0;
xSpeed = 0;
ySpeed = 0;
press = 0;
_root.pre = 1;
}
onClipEvent (enterFrame) {
if (_root.pre) {//这里不用管这个pre了,是我没删的多余的东东,最好删了,要不可能会有bug哦,我不管了:) if (this.hitTest(_root._xmouse, _root._ymouse, true)) {//主要作用是不让在没有接触mc的时候也能控制运动
newX = (-_root._xmouse)*((_width-Stage.width)/Stage.width);//这个公式的推导看看前面的图吧,是主要思路的体现了;[无论你把你的图片弄的多大,场景大小怎样的,都能达到你想要的目的
newY = (-_root._ymouse)*((_height-Stage.height)/Stage.height);
xSpeed = (_x-newX)/a;
ySpeed = (_y-newY)/a;
_x = (_x-xSpeed);
_y = (_y-ySpeed);
}
}
updateAfterEvent(mouseMove);
}

原文件:你可以自己改你的图片和场景的大小,记住图片的(0,0)坐标一定要在左上角!!
希望大家多多支持,看待会有时间不,还有一个同类的坐标的例子,传给大家研究研究
点击浏览该文件
点击浏览该文件

文章录入:skyuu    责任编辑:skyuu 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    发表评论:
    姓名:  评 分: 1分 2分 3分 4分 5分
     
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 用户需对自己在使用幽幽天空服务过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表机友个人观点,与本网站立场无关。