在Flex中,如何将Fxg文件用作MenuBar Icon属性?

时间:2011-05-03 20:02:30

标签: flex flex4 icons menubar fxg

我有点担心。我开始尝试使用已经以FXG格式制作的自定义图标来制作MenuBar控件。

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

  1. 的src /资产/图形/图标/ MenuIcon.fxg
  2. 的src /资产/图形/图标/ ItemAIcon.fxg
  3. 的src /资产/图形/图标/ ItemBIcon.fxg
  4. 阅读以下两个链接和一堆网页后。

    1. http://blog.flexexamples.com/2010/01/29/displaying-icons-in-an-mx-menu bar-control-in-flex /
    2. http://livedocs.adobe.com/flex/3/html/help.html?content=menucontrols_3 .html
    3. 我最终得到了这段代码:

      <?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控件的icon属性,如下所示:

      所以我试着这样做没有运气:

      <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的图标属性中而没有运气。 我真的希望有人已经做过这样的事情。 我将不胜感激任何帮助。

1 个答案:

答案 0 :(得分:0)

如果您只是像对待任何一个'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>

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