2009-08-06 14 views
0

我的问题很简单:Flex容器根据未转换的子级进行布局,因此旋转的子级定位好像没有旋转,但是它们围绕该位置的左上角旋转。我附上了一张图片来展示我的意思。强制容器在儿童旋转后做布局?

Example http://yfrog.com/10rotationvp

是否有人知道如何解决这个问题?我可以将组件包装在一些东西中吗?或者我必须诉诸自定义组件或固定布局?

编辑:图像内联看起来不像它在为我工作。链接到示例图像:http://yfrog.com/10rotationvp

+0

你已经尝试invalidateDisplayList()后旋转它? – 2009-08-06 13:18:29

+0

呀,这个问题是不是定时,而是布局类忽略组件的实际范围,考虑到效果只有getExplicitOrMeasuredWidth /身高:( – Sophistifunk 2009-08-10 04:00:22

回答

1

如果容器不处理布局代码旋转变换,然后不幸的是你坚持自己加入这一功能。为了增加对受伤的侮辱,Flex 3及以下版本并没有真正将布局和逻辑分开,所以通常最终会得到解决一个非常具体的问题的组件,这些问题可能通过实现布局界面的独立布局类更好地解决。这些组件可能会非常快速地增长,而且通常也会导致组件设计变得很脆弱,导致子类化过多。

这个问题在Flex 4中被不客气(待公布),但我真的不能保证其效果。理论上这是个好主意,但实际上我没有时间深入了解Adobe实现该设计的情况。

长话短说:你可能被搞砸了,你必须自己实现这个功能。幸运的是,它通常很容易破解它。不幸的是,实现一个很好的非脆弱解决方案通常很困难,因为它往往不需要使用子类和对超类内部的深入了解,这可能需要也可能不需要monkey patching

+0

我认为是这样的话,只希望我已经错过了什么docs/source ... 我会发布一个愚蠢简单的IContainer实现,支持下周左右的旋转(一个组件),因为我需要很快构建它。 – Sophistifunk 2009-08-10 04:02:24