AS3中显示对象几何属性相关
sshong 发表于2008年7月16日 22:41:00 更新于2008年7月16日 22:51:00
今天好好研究了一下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显示对象几何属性分类:As3&Flex阅读:3293
评论
暂无评论
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅