Apache flex Flex:旋转按钮和改变焦点

Apache flex Flex:旋转按钮和改变焦点,apache-flex,actionscript-3,flex3,flexbuilder,Apache Flex,Actionscript 3,Flex3,Flexbuilder,我在Flex中的旋转按钮有问题。它们似乎污染了其他组件的焦点矩形 以下面的源代码为例,非常简单: <?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:VBox width="100%" height="100%"> <mx:Spa

我在Flex中的旋转按钮有问题。它们似乎污染了其他组件的焦点矩形
以下面的源代码为例,非常简单:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
    <mx:VBox width="100%" height="100%">
        <mx:Spacer height="100" />
        <mx:Button rotation="10" />
        <mx:TextArea rotation="0" />
    </mx:VBox>
</mx:WindowedApplication>

现在执行它。单击文本区域,焦点矩形正确。按tab键两次,围绕文本区域的焦点矩形将旋转

有没有解决办法,或者我应该完全避免旋转按钮

我使用的是FlexSDK 3.5

谢谢


丹尼尔似乎是FlexSDK中的一个bug。我看到了下一个选项:

  • 使用focusSkin=“{null}”禁用聚焦矩形
  • 实现您自己的蒙皮并正确处理旋转
  • 转到Spark,因为3.5是最新版本(当前) 第三代最后的SDK
  • 试着自己修一下(我觉得会的) 狡猾的…)
此外,您可能会在Adobe的tracker中提交一个bug,但它们已经深入到第4代Flex中


更新:3.6夜间版本也包含此错误。

我最近也偶然发现了此错误。这是一个例子

然而,我想知道是否有比扩展每个组件和覆盖adjustFocusRect更通用的解决方案

我提出了扩展FocusManger并覆盖focusPane的getter的方法,如下所示:

override public function get focusPane():Sprite
{
    var fp:Sprite = super.focusPane;
    if (fp && fp.numChildren != 0)
        fp.getChildAt(0).rotation = 0;

    return super.focusPane;
}
并将其设置为应用程序的焦点管理器:

private function onPreinitialize():void
{
    application.focusManager = new FocusManagerEx(this);
}
这似乎是可行的,不过如果有专家能告诉我是否有我不知道的陷阱,那就太好了