设为首页收藏本站

融智技术学院

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3908|回复: 8

有个问题------实时获取鼠标位置(不成功)

[复制链接]
钟科成 发表于 2011-4-4 11:10:50 | 显示全部楼层 |阅读模式
        哥们,帮小弟看看下面这段代码,为什么调试的时候,在调试窗口试图移动鼠标,却发现文本框里的输出值一层层地被覆盖?且不会自动清除掉呢......?  好纠结呀...(不知道是错在哪里了,请求帮帮忙,修改修改...)
stage.addEventListener(MouseEvent.MOUSE_MOVE ,MouseMove);
function MouseMove(e:MouseEvent):void {
        var dx:Number=mouseX;
        var dy:Number=mouseY;
        var tf_x:TextField =new TextField();
        tf_x.width=200;
        tf_x.x=20;
        tf_x.y=20;
        var tf_y:TextField =new TextField();
        tf_y.width=200;
        tf_y.x=20;
        tf_y.y=60;
        tf_x.text=dx.toString();
        tf_y.text=dy.toString();
        addChild(tf_x);
        addChild(tf_y);
        e.updateAfterEvent();
}
//以下为附图
sxyufeng 发表于 2011-4-4 16:26:19 | 显示全部楼层
回复 钟科成 的帖子

图看不到。有一点,你的值每次都是
var tf_x:TextField =new TextField();


这一点是否不正确?
 楼主| 钟科成 发表于 2011-4-8 23:06:34 | 显示全部楼层
回复 sxyufeng 的帖子

不知道哟,后来我只将下面这一段代码放到花括号里,其它的都放在外面,可是这样发现只执行一次,想再次移动鼠标却没效果了(新手刚上路,不是很懂呀):
        tf_x.text=dx.toString();
        tf_y.text=dy.toString();
        addChild(tf_x);
        addChild(tf_y);
        e.updateAfterEvent();
lalo 发表于 2011-4-10 11:25:52 | 显示全部楼层
回复 钟科成 的帖子

addChild是向界面(舞台)添加元件,放在MouseMove事件里,鼠标移动的时候肯定会不停的添加新元件。
首先在界面加载的时候,就把tf_x和tf_y添加到界面上。然后,在MouseMove事件里设置tf_x和tf_y的text属性。

var tf_x:TextField = new TextField();
tf_x.width = 200;
tf_x.x = 20;
tf_x.y = 20;

var tf_y:TextField = new TextField();
tf_y.width = 200;
tf_y.x = 20;
tf_y.y = 60;

addChild(tf_x);
addChild(tf_y);

stage.addEventListener(MouseEvent.MOUSE_MOVE ,MouseMove);
function MouseMove(e:MouseEvent):void
{
        var dx:Number = mouseX;
        var dy:Number = mouseY;

        tf_x.text = dx.toString();
        tf_y.text = dy.toString();
}
 楼主| 钟科成 发表于 2011-4-10 22:44:31 | 显示全部楼层
回复 lalo 的帖子

蒽蒽...谢谢版主;
分析得非常清楚,学生一看才..大悟!
学生要再努力学习...
 楼主| 钟科成 发表于 2011-4-11 01:07:06 | 显示全部楼层
回复 lalo 的帖子

//现在做成包:
package{
        import flash.display .Sprite;
        import flash.text.TextField ;
        import flash.events .MouseEvent;
        public class MouseCoordinate extends Sprite{
                private var tf_x:TextField ;
                private var tf_y:TextField ;
                //private var dx:Number ;
                //private var dy:Number ;
                public function MouseCoordinate(){
                        init();
                }
                private function init():void {
                        //set "x"Coordinate(坐标)文本框
                        tf_x=new TextField();
                        tf_x.width =60;
                        tf_x.height =30;
                        tf_x.x=10;
                        tf_x.y=10;
                        tf_x.selectable =false;
                        //set "y"Coordinate(坐标)文本框
                        tf_y=new TextField();
                        tf_y.width =60;
                        tf_y.height =30;
                        tf_y.x=10;
                        tf_y.y=30;
                        tf_y.selectable =false;
                        //在此加入舞台,以免被__层叠覆盖
                        addChild(tf_x);
                        addChild(tf_y);
                        stage.addEventListener(MouseEvent.MOUSE_MOVE,MouseMove);
                }
                public function MouseMove(event:MouseEvent):void{
                        var dx:Number=mouseX;
                        var dy:Number=mouseY;
                        //将已获得鼠标的值dx dy转换为字符串,并赋予已创建好的文本tf_x    tf_y 文本框;
                        tf_x.text ="x:   "+dx.toString ();
                        tf_y.text ="y:  "+dy.toString ();
                        //有事没事想到了将它们的颜色采用随机化...额..哈哈...
                        tf_x.textColor =Math.random() * 0xffffff;
                        tf_y.textColor =Math.random() * 0xffffff;
                }//end function
        }//end class
}//end package
 楼主| 钟科成 发表于 2011-4-13 00:24:34 | 显示全部楼层
回复 钟科成 的帖子

额...应该是
private function MouseMove(event:MouseEvent):void{
...
...
比较好,
pmrgor 发表于 2011-12-29 13:08:25 | 显示全部楼层
支持你加分
神秘花園s 发表于 2012-8-27 20:36:20 | 显示全部楼层
辛苦!辛苦!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

新突破电商

小黑屋|手机版|Archiver|融智技术学院 ( 京ICP备09018999号  

GMT+8, 2018-1-20 13:04

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表