| |
flash中注册点的概念
|
| |
|
|
|
| |
[学习目标]: 掌握flash中注册点的概念、2个坐标系,以及与位置有关的4个属性常量_x,_y,_xmouse,_ymouse。 前2个教程给大家介绍了as的选择结构的流程控制语句,相信经过自己的练习,应该掌握了。在我们用as控制动画时,"演员"的定位对我们来说太重要了,下面我就给大家说下,关于这方面的相关知识,为后面学习MC的操作打点基础。 生活中我们要精确的确定现在所站的位置,必须知道2个参照对象:一是自身的参照点(在这里比如你的手心),二是整体参照对象(在这里是你的家),这样我们可以说你在你家的东100米,北200米处。就很容易的找到你。 对于as中我们控制的实例也是这样的,要想知道这些实例的位置,我们也要知道2点。一个是注册点,一个是所处的坐标系。 一、注册点 注册点,也可以说是"中心点"、"焦点",在编辑状态下,我们点选一个对象时,总看到个"+",其实这个就是注册点,这个注册点做什么用?就是对象自己本身的参考点,在我们需要不同的操作时,含义有点区别: 1、在控制坐标时,横纵坐标值_x,_y就是注册点 。 2、在控制旋转度时,注册点就是旋转的中心点。 3、在控制宽高以及缩放比例时,都是以注册点为中心向各个方向变化的。 可见注册点的重要了。在具体应用中,注册点的位置就是对象的坐标_x,_y,知道这点我们在编辑状态下就能很容易的确定注册点了。 二、坐标体系 flash有2个坐标体系: 1、主场景的坐标体系 任何元件放在主时间轴,他们的定位就是靠的主场景的坐标体系,坐标原点在左上角,x轴向左增加,y轴向下增加。对于任何实例而言,它的坐标,就是注册点的位置。 在as的对象中有一对属性值可以得到或者对其赋值,那就是_x,_y。比如:我们前边的例子中有个MC元件yuan_mc放在主时间轴,它的位置就是(yuan_mc._x,yuan_mc._y),这个点就是注册点在主时间轴的位置,等于这个元件的位置。 在主时间轴如果我们要定位鼠标光标的位置,可以通过2个属性值_xmouse,_ymouse来得到(这2个特殊点,是只读的)。比如我们在主时间轴想知道现在鼠标光标在什么位置,可以这样引用(_root._xmouse,_root._ymouse).很简单吧。 2、元件内的坐标体系 作为元件而言,他们有自己独立的坐标体系,就跟他们有自己的时间轴一样的,不过他们的坐标体系不同,就是原点的位置变了,在中心,其他是一样的。 如果在这个元件里面又嵌套了其他元件,我们也可以通过_x,_y这2个属性来调用的。 同样在这个体系我们也可以通过实例的_xmouse,_ymouse获取鼠标的位置,不过这个位置是对于当前元件而言的。 具体情况大家看下面的例子: 要求:演示2个坐标体系中的元件及鼠标的位置坐标 步骤: 1、新建flash文档 2、导入2个图片到库,你也可以自己画了,分别是hua,和hudie,就是一个是花篮,一个是蝴蝶。 3、新建MC元件hudie_mc。用上面导入的图片做个蝴蝶运动的MC。 4、新建MC元件hua_mc。在上面拖入花篮这个图片,然后在新建的图层中以中心为原点画个坐标系,在新建图层把hudie_mc拖入,并给MC元件hudie_mc个实例名hudie_mc,调整好位置。 5、回到主场景。 6、新建图层msg,在上面添加8个动态文本,分别对应变量名:x_hua,y_hua,x_hudie,y_hudie,x_mouse_hua, y_mouse_hua,x_mouse_hudie,y_mouse_hudie。 7、新建图层hua把MC元件hua_mc拖入,并给实例名hua_mc。 8、新建图层xy,在左上角为原点,画坐标系。 9、新建图层ActionScript,加as如下: //MC元件hua_mc的事件函数 hua_mc.onPress = function() { startDrag(this, true); //播放时拖动 }; hua_mc.onRelease = function() { stopDrag(); //停止拖动 }; //MC元件hudie_mc的事件函数 hua_mc.hudie_mc.onMouseDown = function() { startDrag(this, true); }; hua_mc.hudie_mc.onMouseUp = function() { stopDrag(); }; //取得位置坐标 hua_mc.onEnterFrame = function() { _root.x_hua = this._x; _root.y_hua = this._y; _root.x_hudie = this.hudie_mc._x; _root.y_hudie = this.hudie_mc._y; _root.x_mouse_hua = _root._xmouse; _root.y_mouse_hua = _root._ymouse; _root.x_mouse_hudie = this._xmouse; _root.y_mouse_hudie = this._ymouse; }; 测试仔细观察位置的变化情况。 说明:在个as里面用了2个方法,startDrag和stopDrag来实现元件的拖动。本次给大家介绍的内容很简单,其实就4个属性是新的_x、_y、_xmouse 和 _ymouse,这4个的使用很广泛。
|
| |
【责任编辑:dadaqiang】 |
| |
上一篇文章: 宽带路由优化与使用技巧
下一篇文章: 没有了 |
| |
|
| |
|
| |
|
|
|
|
|
|
|