2011-05-03 83 views
1

我有点担心。我开始尝试使用FXG格式制作自定义图标的MenuBar控件。在Flex中,如何将Fxg文件用作MenuBar Icon属性?

我在我的项目文件夹内 “assets.graphics.icons” 3个FXG文件:

  1. 的src /资产/图形/图标/ MenuIcon.fxg
  2. 的src /资产/图形/图标/ ItemAIcon.fxg
  3. 的src /资产/图形/图标/ ItemBIcon.fxg

阅读以下两个链接和一堆网页后。

  1. http://blog.flexexamples.com/2010/01/29/displaying-icons-in-an-mx-menu酒吧控制在-FLEX/
  2. http://livedocs.adobe.com/flex/3/html/help.html?content=menucontrols_3的.html

我结束了这段代码:

<?xml version="1.0" encoding="utf-8"?> 

<!-- src/myMenuBarApplication.mxml --> 



<mx:Application name="myMenuBarApplication" 
       xmlns:mx="http://www.adobe.com/2006/mxml" 
       xmlns:components="assets.graphics.icons.*"> 

    <mx:MenuBar id="myMenuBar" iconField="@icon" labelField="@label" showRoot="true"> 
      <fx:XMLList> 

       <menuitem label="Menu" icon=""> 
        <menuitem label="Item A" icon=""> 
         <menuitem label="SubItem A1"/> 
         <menuitem label="SubItem A2"/> 
        </menuitem> 
        <menuitem label="Item B" icon=""> 
         <menuitem label="SubItem B1"/> 
         <menuitem label="SubItem B2"/> 
        </menuitem> 
       </menuitem> 

      </fx:XMLList> 
    </mx:MenuBar> 


</mx:Application> 

我了解到,您可以用任何做使用以下代码添加标签的图像文件

<mx:Script> 
    <![CDATA[ 
     [Embed("assets/graphics/images/MenuIcon.png")] 
     public const MenuIconConst:Class; 
    ]]> 
</mx:Script> 

加法的常量名到MenuBar控制的这样的图标属性:

所以,我想,没有运气做到这一点:

<mx:Script> 
    <![CDATA[ 
     import assets.graphics.icons.*; 
     [Bindable] 
     public var MenuIconVar:Class = new MenuIcon() as Class; 
     // MenuIcon is one of my FXG files inside assets.graphics.icons 
    ]]> 
</mx:Script> 

我发现了一个不同的网络页面,你必须建立一个库来嵌入Fxg文件,然后将它们用作类名或类似的东西,但我并不完全理解。

现实情况是,我一直试图以许多不同的方式将任何fxg组件放在MenuBar的图标属性中,但没有运气。 我真的很希望有人已经做出这样的事情。 我将不胜感激任何帮助。

回答

0

如果你像处理任何ol'MXML类那样对待它,它实际上更容易。

因此,“assets/graphics/images/MenuIcon.fxg”会变成assets.graphics.images.MenuIcon。由于字符串不是类,因此需要使用绑定表达式将类分配给图标属性。

<menuitem label="Item A" icon="{assets.graphics.images.MenuIcon}"> 
    <menuitem label="SubItem A1"/> 
    <menuitem label="SubItem A2"/> 
</menuitem> 

您可能还需要先导入课程......我无法回想起我的头顶。

相关问题