如何使用 RadioButton 组件修复此潜在错误?
当我将 RadioButton(fl.controls) 添加到舞台时,我遇到了一个奇怪的问题。
以下是重现该问题的快速方法:
- 创建一个空的 MovieClip
- 添加一个 RadioButton 组件 将
- 组件的宽度设置为小于 100 的值
- 跟踪容器宽度
即使舞台上的 RadioButton 实例小于 100,容器宽度也将跟踪 100宽的。
如果我从代码添加组件,那么如果我先添加 RadioButton 后使阶段无效,然后在 Event.RENDER 处理程序中检查容器宽度,它就会起作用。
在 IDE/Authoring 中手动添加 RadioButton 时,是否有针对此测量错误的修复?
I've got a weird issue with the RadioButton(fl.controls) when I add it to the stage.
Here's a quick way to reproduce the issue:
- create an empty MovieClip
- add a RadioButton component
- set the width of the component to a value smaller than 100
- trace the container width
The container width will trace 100 even though the RadioButton instance on stage is less than 100 wide.
If I add the component from code, it works if I invalidate the stage after adding the RadioButton first, then check the container width in a Event.RENDER handler.
Is there any fix for this measurement bug when adding the RadioButton manually in the IDE/Authoring ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为 Flash 使用缩放比例来在运行时调整对象大小,而不是使用宽度和高度度量。
因此,如果加载 RadioButton 并缩小其大小,实际上会缩放原始大小的 0.89。
当您运行该应用程序时,RadioButton 的宽度仍然是 100px,但按原始比例缩小了 0.89。
如果您跟踪已调整大小和未调整大小的 RadioButton 的
scaleX
和scaleY
属性,您就会明白我的意思。查看此文档了解更多信息:
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7df3.html
This is because Flash uses a scaling ratio in order to resize objects at runtime, rather than using width and height measures.
So if you load the RadioButton and shrink its size, you are actually scaling by say 0.89 of the original size.
When you run the application, your RadioButton is still 100px wide, but scaled down by a ratio of 0.89 of the original.
If you trace the
scaleX
andscaleY
properties of a resized and a non-resized RadioButton, you will see what I mean.Check out this documentation for more:
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7df3.html