as3里修改子项的宽度后,子项的子项的宽度在显示上是变了,但是读取它的.width却还是原来的宽度
mc2.width=100;
stage.addChild(mc1);//把空白mc1加进场景
mc1.addChild(mc2);//把有内容的mc2加进mc1
mc1.width = mc1.width/2;//把mc1的宽度缩小
trace(mc2.width);//输出还是100
trace(mc2.x);//输出也是没变....因为缩放之后mc2有横向移动,所以mc2.x应该要变的...
但是场景中显示的mc2的宽度已经缩短了一半了的
我想问问,除了用mc2.width/2计算mc2的显示宽度之外,还有什么方法可以直接读出mc2相对于stage的真正显示宽度和真正显示的坐标啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
希望直接读出数值是因为用数学运算的话,有时候会因为小数点后尾数太多而出现挺明显的偏差,所以放弃使用。
我刚刚想到了一个方法,而且已经实施成功:使用globalToLocal和localToGlobal完美但不直接地解决了问题。
1、首先用localToGlobal计算出mc2.x+mc2.width和mc2.x相对于主场景的x值
2、用前者减去后者
但是这样不直接,而且使用localToGlobal运算必须先把值组装为点...增加了很多没必要的代码