as3 - getRect,getBounds
来源:互联网 发布:如何安装解压软件 编辑:程序博客网 时间:2024/05/21 14:51
http://hi.baidu.com/miracle5460/item/08c884602cb1b890c5d249e8
lineStyle()方法
getRect()方法返回的矩形大小是不把笔触大小算进去的,而getBounds()方法返回的矩形大小把笔触大小算进去,因此getBounds() 返回的矩形面积 >= getRect() 返回的矩形面积
代码如下:
import flash.display.CapsStyle;import flash.display.JointStyle;import flash.display.LineScaleMode;import flash.display.Sprite;import flash.geom.Rectangle;var triangle:Sprite = new Sprite();var color:uint = 0xFF0044;var wid:Number = 20;var al:Number = 1.0;var pixelHinting:Boolean = true;var scaleMode:String = LineScaleMode.NORMAL;var caps:String = CapsStyle.SQUARE;var joints:String = JointStyle.MITER;triangle.graphics.lineStyle(wid, color, al, pixelHinting, scaleMode, caps, joints);var triangleSide:Number = 100;triangle.graphics.moveTo(0, 0);triangle.graphics.lineTo(0, triangleSide);triangle.graphics.lineTo(triangleSide, triangleSide);triangle.graphics.lineTo(0, 0);var rect:Rectangle = triangle.getRect(this);var bound:Rectangle = triangle.getBounds(this);triangle.graphics.lineStyle(0,0x00ff00);triangle.graphics.drawRect(rect.x,rect.y,rect.width,rect.height);triangle.graphics.lineStyle(0,0xff0000);triangle.graphics.drawRect(bound.x,bound.y,bound.width,bound.height);addChild(triangle);trace(bound); // (x=-10, y=-24.1, w=134.10000000000002, h=134.1)trace(rect); // (x=0, y=0, w=100, h=100)
lineStyle()方法
public function lineStyle(thickness:Number, color:uint = 0, alpha:Number = 1.0, pixelHinting:Boolean = false, scaleMode:String = "normal", caps:String = null, joints:String = null, miterLimit:Number = 3):void
thickness:粗细
color:颜色
alpha:透明度
pixelHinting:用于指定是否提示笔触采用完成的像素值??
scaleMode:用于指定用哪种缩放模式的LineScaleMode值,LineScaleMode.NORMAL,LineScaleMode.NONE,LineScaleMode.VERTICAL,LineScaleMode.HORIZONTAL
跟随整个图形缩放而缩放,永远不缩放,垂直缩放时不缩放,水平缩放时不缩放。【scaleX,scaleY】
caps:用于指定线条末端处端点位置的CapsStyle类的值。
joints:用于指定拐角的连接外观类型,如果未指定,则使用圆角连接。
JointStyle.BEVEL,JointStyle.MITER,JointStyle.ROUND
//========================================
开头程序运行的结果
绿色框使用getRect的参数
红色框使用getBounds的参数,
另外
http://bbs.9ria.com/thread-180189-1-1.html
http://bbs.9ria.com/thread-180189-1-1.html
==
函数的参数targetCoordinateSpace,简单来说getRect函数返回的Rectangle中的属性都是相对于这个显示对象而言的。
当你把舞台作为参数传入的时候,得到的就是全局坐标和变形后的宽高,而不用管它在容器中嵌套的多深;
当你把自身作为参数传入的时候,得到的就是本地坐标和原始的宽高;
当你把另一个没有嵌套关系的显示对象作为参数传入的时候,得到的就是相对坐标和变形后的宽高。
当你把舞台作为参数传入的时候,得到的就是全局坐标和变形后的宽高,而不用管它在容器中嵌套的多深;
当你把自身作为参数传入的时候,得到的就是本地坐标和原始的宽高;
当你把另一个没有嵌套关系的显示对象作为参数传入的时候,得到的就是相对坐标和变形后的宽高。
查询影片剪辑的默认原始宽高:
- width = a.width/a.scaleX;height = a.height/a.scaleY;
还有一个小技巧,当你想画一个常规的框框,你可以选择用drawRect,不指定内部填充。
如果要话一个不是很规则的,可以选择连续画填充的矩形,相互重叠的地方会变透明。
这样配合上面getRect的用法,可以做类似游戏的新手引导,
画一个大的阴影当遮罩,再获取需要挖空地方的外边矩形,以此为参数再绘制一个矩形,就可以把可点击区域控制在小矩形了。
0 0
- as3 - getRect,getBounds
- bug of getBounds/getRect
- as getRect(),getBounds()
- DisplayObject的getBounds和getRect方法
- createjs初学-关于getBounds和getTransformedBounds
- AS3
- As3
- 晕--as3
- AS3 START
- as3教程
- AS3 loading
- as3基础
- as3笔记
- as3遍历
- AS3滤镜
- AS3:getDefinitionByName
- AS3 类库
- AS3 StringTokenizer
- VS2010 测试 -单元测试
- Android Developers:检测常见的手势
- Oracle 11g Data Guard 使用duplicate from active database 创建 standby database .
- 互动能量杯横空出世,对决中国瓶装水行业
- WinForm系列(一)-控件listview
- as3 - getRect,getBounds
- 调用系统对话框
- 1.12. 补充信息 - Further Information
- Oracle与SQL Server的互连
- java listener read web.xml
- 启动hadoop、hbase需要注意的事项
- 【玩转cocos2d-x之三十】点九图和输入框的使用
- 新浪微博的改版故事
- uva127 "Accordian" Patience poj1214 模拟