这个as2的鼠标效果换成as3应该怎么写啊?
//隐藏系统鼠标指针Mouse.hide();//鼠标移动时执行cursor.onMouseMove=function(){//使cursor实例的当前坐标位置实时与鼠标...
//隐藏系统鼠标指针
Mouse.hide();
//鼠标移动时执行
cursor.onMouseMove = function() {
//使cursor实例的当前坐标位置实时与鼠标坐标保持一致
this._x = _root._xmouse;
this._y = _root._ymouse;
//刷新舞台以使光标的移动看起来更加顺畅
updateAfterEvent();
};
----------------------------------------------------------------------------------------------
我用AS3写的:
Mouse.hide();
this.addEventListener(Event.ENTER_FRAME,moveMc);
function moveMc(e:Event):void{
mouse_mc.x =root.mouseX;
mouse_mc.y =root.mouseY;
updateAfterEvent();
}
但是系统提示:updateAfterEvent();在AS3中已经不能用了,请问应该怎么改呢?谢谢 展开
Mouse.hide();
//鼠标移动时执行
cursor.onMouseMove = function() {
//使cursor实例的当前坐标位置实时与鼠标坐标保持一致
this._x = _root._xmouse;
this._y = _root._ymouse;
//刷新舞台以使光标的移动看起来更加顺畅
updateAfterEvent();
};
----------------------------------------------------------------------------------------------
我用AS3写的:
Mouse.hide();
this.addEventListener(Event.ENTER_FRAME,moveMc);
function moveMc(e:Event):void{
mouse_mc.x =root.mouseX;
mouse_mc.y =root.mouseY;
updateAfterEvent();
}
但是系统提示:updateAfterEvent();在AS3中已经不能用了,请问应该怎么改呢?谢谢 展开
2个回答
展开全部
我说3个方法吧,1个简单的。2个麻烦点的
------------------------------------------
//先说这个简单的,就2句,你自己复制过去
//然后设定一个 实例名为mymc的剪辑实例放到舞台上就好了
Mouse.hide();//隐藏鼠标
mymc.startDrag(true);//实例启动拖动跟随鼠标(就这2句就OK了)
------------------------------------------
再说第二个
Mouse.hide();//鼠标隐藏
stage.addEventListener(Event.ENTER_FRAME,moving);//舞台帧监控
function moving (e:Event):void{//设定函数动作 moving
mymc.x=mouseX;// 实例 x 坐标 等于 鼠标 x
mymc.y=mouseY;// 实例 y 坐标等于 鼠标 y
}
-------------------------------------------
第三种、当然换成鼠标移动监控也可以
Mouse.hide();//鼠标隐藏
stage.addEventListener(MouseEvent.MOUSE_MOVE,moving);//舞台鼠标移动监控
function moving (e:MouseEvent):void{//设定函数动作 moving
mymc.x=mouseX;// 实例 x 坐标 等于 鼠标 x
mymc.y=mouseY;// 实例 y 坐标等于 鼠标 y
}
---------------------------------------------
最后在解决下你说的那个 刷新问题,为了保证流畅是吧
就是在 funtion 函数命令动作中加入
e.updateAfterEvent 命令,他会在触发命令后立即刷新屏幕,保证流畅。
一般默认帧速为 12FPS,所以感觉不出来什么,你不妨在程序开头写上
stage.frameRate= 1 ,这样帧频就变成1了,你试试 效果就知道,这句代码多么强大了~~ 它既降低了内存占用率,又保证了流畅度。
好了,最后给你代码:
======================================================
stage.frameRate=1//设定舞台帧速为 1,这样会极大降低内存使用率,但是会很卡
Mouse.hide();//鼠标隐藏
stage.addEventListener(MouseEvent.MOUSE_MOVE,moving);//舞台鼠标移动键控
function moving (e:MouseEvent):void{//设定函数动作 moving
e.updateAfterEvent()//触发命令后立即刷新舞台。这样就流畅了
mymc.x=mouseX;// 实例 x 坐标 等于 鼠标 x
mymc.y=mouseY;// 实例 y 坐标等于 鼠标 y
}
-------------------------------------------------------
最佳给我吧,纯手打~ 所有代码绝无任何问题,亲测~~
有问题常来~
------------------------------------------
//先说这个简单的,就2句,你自己复制过去
//然后设定一个 实例名为mymc的剪辑实例放到舞台上就好了
Mouse.hide();//隐藏鼠标
mymc.startDrag(true);//实例启动拖动跟随鼠标(就这2句就OK了)
------------------------------------------
再说第二个
Mouse.hide();//鼠标隐藏
stage.addEventListener(Event.ENTER_FRAME,moving);//舞台帧监控
function moving (e:Event):void{//设定函数动作 moving
mymc.x=mouseX;// 实例 x 坐标 等于 鼠标 x
mymc.y=mouseY;// 实例 y 坐标等于 鼠标 y
}
-------------------------------------------
第三种、当然换成鼠标移动监控也可以
Mouse.hide();//鼠标隐藏
stage.addEventListener(MouseEvent.MOUSE_MOVE,moving);//舞台鼠标移动监控
function moving (e:MouseEvent):void{//设定函数动作 moving
mymc.x=mouseX;// 实例 x 坐标 等于 鼠标 x
mymc.y=mouseY;// 实例 y 坐标等于 鼠标 y
}
---------------------------------------------
最后在解决下你说的那个 刷新问题,为了保证流畅是吧
就是在 funtion 函数命令动作中加入
e.updateAfterEvent 命令,他会在触发命令后立即刷新屏幕,保证流畅。
一般默认帧速为 12FPS,所以感觉不出来什么,你不妨在程序开头写上
stage.frameRate= 1 ,这样帧频就变成1了,你试试 效果就知道,这句代码多么强大了~~ 它既降低了内存占用率,又保证了流畅度。
好了,最后给你代码:
======================================================
stage.frameRate=1//设定舞台帧速为 1,这样会极大降低内存使用率,但是会很卡
Mouse.hide();//鼠标隐藏
stage.addEventListener(MouseEvent.MOUSE_MOVE,moving);//舞台鼠标移动键控
function moving (e:MouseEvent):void{//设定函数动作 moving
e.updateAfterEvent()//触发命令后立即刷新舞台。这样就流畅了
mymc.x=mouseX;// 实例 x 坐标 等于 鼠标 x
mymc.y=mouseY;// 实例 y 坐标等于 鼠标 y
}
-------------------------------------------------------
最佳给我吧,纯手打~ 所有代码绝无任何问题,亲测~~
有问题常来~
展开全部
应该写成e.updateAfterEvent();
updateAfterEvent()方法在AS3中已经不是顶级函数了.
我用你的代码测试了下,发现改成e.updateAfterEvent()也会报错,然后我查了下帮助文档,发现里面只有3个事件类可以调用updateAfterEvent()方法,分别是MouseEvent、KeyboardEvent、TimerEvent,所以我觉得可能Event类里面本身就没有updateAfterEvent()方法,所以调用会报错。
希望对你有所帮助
updateAfterEvent()方法在AS3中已经不是顶级函数了.
我用你的代码测试了下,发现改成e.updateAfterEvent()也会报错,然后我查了下帮助文档,发现里面只有3个事件类可以调用updateAfterEvent()方法,分别是MouseEvent、KeyboardEvent、TimerEvent,所以我觉得可能Event类里面本身就没有updateAfterEvent()方法,所以调用会报错。
希望对你有所帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询