今天好好研究了一下AS3显示对象的几何属性,核心结论如下:
1. DisplayObject的x、y、width、height、scaleX、scaleY、rotation跟父显示对象几何属性的更改没有关系!父对象统一的任何操作不会影响子对象的这些几何属性!
2. 其width、height只跟其子显示对象的几何尺寸变化、手动修改rotation、scale或者width、height有关!
3. 其scale只跟手工修改其width、height或者scale有关
4. 其x、y只跟手动修改x、y有关!
也正是因为这个原因,导致我设想在用户动态调整播放器大小的情况下保证load出来的加到stage下的mc能够舞台居中失败!(计划公式mc.x = (stage.stageWidth-mc.width)/2)
除非将scale设定为noscale,将align设定为左上角,在resize事件中将所有都根据stagewidth重新设定x、y。
而其他的scale模式无解!为什么?原因就是1中所述。
stage放大了,mc作为其子,其x不会发生改变!而stagewidth又是放大后的stage尺寸,通过上公式计算出来的坐标是错误的!
其实应该是
mc.x = (stage.stageWidth/stage.scaleX - mc.width)/2
其中stage.stageWidth/stage.scaleX就是我们最开始设定的舞台尺寸,
悲哀的是我们无法获取stage的scale,而stage也没有保留最原始设定的舞台尺寸,真是悲哀啊!!
AS3中显示对象几何属性相关
发表于2008年7月16日 22:41:00 更新于2008年7月16日 22:51:00
评论
暂无评论添加评论
分类
琐碎文字 As3&Flex RIA UG English CodingArt C++ PHP Webserver E音乐盒 Unity3d C# JS&Html5 Tools mobile golang 最近发表
- js的锁以及异步调用相关(2024年11月30日 10:58:51)
- golang学习之函数/方法/接口(2022年1月6日 17:50:24)
- golang学习之零值(2022年1月6日 16:38:10)
- hello, 2018(2018年1月15日 22:47:25)
- 字体类型名词解释(2015年1月18日 11:29:14)
- 获取mysql表注释以及列注释(2014年11月13日 15:56:32)
- php连接ms sql数据库的一些问题(2014年9月15日 20:32:14)
- virtualbox虚拟网络:NAT&bridge桥接网络(2014年8月25日 22:51:35)
- php图片加水印(2014年8月15日 22:50:42)
- windows查看端口占用情况(2014年7月31日 21:19:30)
最近回复