createjs初学-关于getBounds和getTransformedBounds
来源:互联网 发布:h5游戏源码搭建 编辑:程序博客网 时间:2024/05/21 08:41
在现在的easeljs中,显示对象没有width和height属性(我现在用的版本是0.8.1)。要想获得一个显示对象的宽高,可以用getBounds这个方法。
API中说明如下:
getBounds返回一个矩形,表示显示对象的边界(x,y,width,height)。如果这个显示对象被cache,那么返回的就是cache内容的边界。
不是所有的显示对象都可以计算它的bounds(比如说Shape)。这时,你可以自己用setBounds方法设置它的bounds,以方便包含它的容器计算bounds。在用setBounds方法手动设置以后,就会覆盖显示对象原来计算bounds的方式,以手动设置的为准。
对于一些显示对象来说,计算bounds效率很低,比如说Text和一个包含很多对象的容器,你可以只获取一次,然后用这个值设置显示对象的bounds。代码如下。
var bounds = obj.getBounds();obj.setBounds(bounds.x, bounds.y, bounds.width, bounds.height);
为了减小内存压力,getBounds返回的Rectangular实例可能被回收,所以要想保存这个值以后用的话,最好复制一份。
var myBounds = obj.getBounds().clone();
然后详细说下每种显示对象的getbounds的方法。
1.Container
根据所有的子对象返回的getBounds计算,合并以后就是Container的bounds。
2.Shape
返回的是null,如果cache过以后,就是cache的大小和位置。也可以通过setBounds方法先设置好。
3.Bitmap
返回的是正确的大小和位置,而且getBounds和getTransformedBounds返回的是一样的。
原图:
根据获取的bounds在上面画了一层半透明的Shape,来表示bounds的值
旋转后:
倾斜后:
4.Text
返回的也是正确的大小和位置,如图
倾斜后:
5.Sprite
Sprite获取到的是当前帧的bounds,值也是正确的。
6.BitmapText
getBounds返回的总是原始的大小和位置,在变换后getTransformedBounds返回的是正确的大小和位置。
在不变换的情况下:
在设置了位置和缩放以后:
红色的方块是getBounds方法得到的,绿色是getTransformedBounds方法得到的。
所以想要获取bitmapText的宽高,就得用getTransformedBounds这个方法。
- createjs初学-关于getBounds和getTransformedBounds
- createjs初学-关于cache
- createjs初学-关于Ticker
- createjs初学-创建一个button
- createjs初学-BitmapText使用实例
- createjs初学-preloadJS的使用
- createjs初学-preloadJS的使用
- 关于createjs的中心点和坐标之间的联系
- 关于createjs的中心点和坐标之间的联系
- DisplayObject的getBounds和getRect方法
- createjs初学-简单的图片拖拽
- createjs初学-制作一个简单的TextButton
- createjs初学-所有的显示对象介绍(1)
- createjs初学-所有的显示对象介绍(2)
- createjs的用途和开发步骤
- bug of getBounds/getRect
- as3 - getRect,getBounds
- as getRect(),getBounds()
- 从源码角度分析view的layout过程
- python 精华之函数式编程
- 成员了变量的作用域
- HDU 4046 Panda(树状数组)
- LightOJ - 1422 Halloween Costumes 区间DP
- createjs初学-关于getBounds和getTransformedBounds
- LINUX新手常用命令[长期更新]
- iOS学习——StatusBar状态栏的简单设置
- Java n个线程轮流打印数字的问题
- LeetCode刷题小记---Reverse Integer
- hdu 1599 floyed最短路
- [leetcode] 264.Ugly Number II
- iOS中级(一) 正则表达式
- C/C++经典源代码网站