0

ノードとしてイメージとラベルを使用して 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>

これにより、次のエラーが表示されます: Initializer for 'Embed': unrecognized compile-time directive.

Plzは、私がここで間違っていることを誰かに教えてもらえますか.

ありがとうジーシャン

4

2 に答える 2

1

通常、必要なアイコンごとにクラスを作成します

[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>
于 2011-01-19T14:48:28.690 に答える
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>

明らかに、この方法でアイコン画像を埋め込むことはできませんが、その必要はないのではないでしょうか? 100% 確実ではありませんが、dataProvider は実行時に適用されると思います。つまり、このアプローチでアイコン画像を埋め込む方法はありません。

私が間違っているとすれば、icon属性の値を見て、そのパスにある画像を埋め込むアイテム レンダラーを作成できます。

私が正しければ、すべてのアイコン画像を埋め込み、 の値labelまたはその他の識別属性に基づいて正しいアイコンを表示するカスタム アイテム レンダラーを作成できます。

于 2011-01-18T22:19:09.600 に答える