我正在尝试创建一个popupmenubutton,其中包含图像和标签作为其节点。但我无法嵌入图标。它给了我和错误(如下所示)。你单独的标签工作正常。
<mx:PopUpMenuButton id="menu_file" labelField="@label" itemClick="{menuClickHandler(event);}" visible="false"
height="20" left="0" top="0" width="15" alpha="0.5" cornerRadius="5" useHandCursor="true"
toolTip="Delete, Move, Rename or Modify other properties">
<mx:dataProvider>
<mx:XMLList>
<node label="{LABEL_DELETE}" icon="@Embed(source='assets/FileManager/images/cancel2.png')"/>
<node label="{LABEL_DOWNLOAD}" icon="@Embed(source='assets/FileManager/images/cancel2.png')"/>
<node label="{LABEL_MOVE}" icon="@Embed(source='assets/FileManager/images/cancel2.png')"/>
<node label="{LABEL_RENAME}" icon="@Embed(source='assets/FileManager/images/cancel2.png')"/>
<node label="{LABEL_SET_PRIVACY}" icon="@Embed(source='assets/FileManager/images/cancel2.png')"/>
</mx:XMLList>
</mx:dataProvider>
这给我一个错误:'嵌入'的初始化程序:无法识别的编译时指令。
普拉兹有人可以告诉我这里做错了什么。由于 Zeeshan
答案 0 :(得分:1)
我通常会为每个需要的Icon创建一个类
[Embed("img/Print.png")]
public const printIcon : Class;
并将此类用作图标
<mx:XMLList>
<menuitem label="File">
<menuitem label="Print" icon="printIcon"/>
<menuitem label="Logout" icon="logoutIcon" />
<menuitem label="Close" icon="closeIcon"/>
</menuitem>
<menuitem label="Modify">
<menuitem label="Preferences" icon="toolIcon" />
</menuitem>
<menuitem label="Help">
<menuitem label="About Us" icon="infoIcon"/>
</menuitem>
</mx:XMLList>
答案 1 :(得分:0)
我认为问题在于编写的代码试图将图像作为节点中icon
属性的值嵌入 - 属性的值只能是字符串。
在不知道有关您的应用程序的任何其他内容的情况下,我会说您必须重写这样的dataProvider:
<mx:dataProvider>
<mx:XMLList>
<node label="{LABEL_DELETE}" icon="assets/FileManager/images/cancel2.png"/>
<node label="{LABEL_DOWNLOAD}" icon="assets/FileManager/images/cancel2.png"/>
<node label="{LABEL_MOVE}" icon="assets/FileManager/images/cancel2.png"/>
<node label="{LABEL_RENAME}" icon="assets/FileManager/images/cancel2.png"/>
<node label="{LABEL_SET_PRIVACY}" icon="assets/FileManager/images/cancel2.png"/>
</mx:XMLList>
</mx:dataProvider>
显然,你没有能力以这种方式嵌入图标图像,但也许你不需要?我不是百分百肯定,但我认为dataProvider是在运行时应用的,这意味着没有办法用这种方法嵌入图标图像。
如果我错了,你可以编写一个项目渲染器,它会查看icon
属性的值,并嵌入在该路径中找到的图像。
如果我是对的,您可以编写一个自定义项目渲染器,嵌入所有图标图像,然后根据label
的值或其他一些识别属性显示正确的图标。