带有浮动工具箱 ItemRenderer 的 Flex 4 DataGrid

Flex 4 DataGrid with floating toolbox ItemRenderer

在我的项目中,我有一个包含一些信息的 DataGrid 组件,在最后一列中,我需要放置一个浮动工具箱。

这个想法是当用户点击图标的工具框时,它会出现在浮动工具框上方,就像一个菜单,其中包含一些图标以执行不同的操作。

至此,我已经解决了专栏的ItemRenderer显示调度工具框图标,但是显示上浮动工具框的问题我还是没能解决。我试图制作一个自定义组件(它是一个 Canvas,它包含一个包含操作图标的 HBox)来保存工具箱的图标并通过菜单控件 (mx.control.Menu) 显示它,如下所示:

    private function createAndShow():void {
        var myCustomMenu:CustomContextMenu = new CustomContextMenu();
        var myMenu:Menu = Menu.createMenu(this, myCustomMenu, false);
        myMenu.show(btnToolBox.x + 10, btnToolBox.y + 10);
    }

但是这种方法在页面的左侧和顶部显示了一个奇怪的容器,而不是在给定的点显示它,即 (btnToolBox.x + 10, btnToolBox.y + 10)

那么,有人可以帮我解决这个问题吗?

我正在互联网上搜索一些例子,但是我找不到任何可以帮助我完成这种情况的东西,所以,如果有人知道解决这个问题的方法或者至少可以以某种方式指出我,任何建议将不胜感激。

经过长时间的研究,我终于找到了答案。我创建了一个使用 PopUpAnchor 的自定义组件,解决方案如下所示

<s:PopUpAnchor id="hDropDown" x="{btnToolBox.x-options1.width+30}" y="{btnToolBox.y-6}" includeInLayout="false" 
               showEffect="{showEffects}" hideEffect="{hideEffects}">
    <s:BorderContainer minHeight="0" id="options1" mouseDownOutside="{hDropDown.displayPopUp=false}" 
                       cornerRadius="2" borderWeight="1" borderColor="gray" backgroundColor="black">
        <s:layout>
            <s:HorizontalLayout gap="5" paddingLeft="5" paddingRight="5" paddingTop="5" paddingBottom="5" />
        </s:layout>
    </s:BorderContainer>
</s:PopUpAnchor>