2

Flex でリソース バンドルからアイコンを取得するのに問題があります。シナリオは次のとおりです。

ディレクトリ構造は次のようになります。

 -ResourceManagerTest
   -resources
     -icons
       -icon1.png
       -icon2.png
       -icons.properties
 -src
   -MyButton.as
   -ResourceManagerTest.mxml

私が持っているicons.propertiesで:

CIRCLE_FILLED=Embed("icon1.png")
CIRCLE_CONTOUR=Embed("icon2.png")

アイコンがリソースバンドルから引き出されたボタンで ToggleButtonBar を作成したいと思います。

プログラムで作成されたボタンのソースは次のとおりです。

package
{
    import mx.resources.ResourceManager;

    public class MyButton extends Object
    {
    public var icon:Class;
    public function MyButton()
    {
        super();
        icon = ResourceManager.getInstance().getClass("icons", "CIRCLE_FILLED");
    }

}

}

ToggleButtonBar を定義する ResourceManagerTest は次のとおりです。

<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute"
creationComplete="onCreationComplete()">

<mx:Script>
    <![CDATA[
        [Bindable]
        public var dataProvider:Array;

        public function onCreationComplete():void {

            dataProvider = new Array();
            dataProvider.push(new MyButton());
            dataProvider.push(new MyButton());
            tgb.dataProvider = dataProvider;
        }

    ]]>
</mx:Script>


<mx:ToggleButtonBar id="tgb"/>

ボタンは表示されますが、アイコンはありません。私は何を間違っていますか?

4

2 に答える 2

1

Flex 3 で ResourceBundle をセットアップする方法について私が見つけた最良のリソースは、Adobe の livedocs の「リソースの使用」です。

[ResourceBundle("icons")]

リソース バンドルを含めるだけでなく、コンパイル時にリソース パスを含める必要があります。詳細については、Adobe のドキュメントを参照してください。

于 2009-07-07T01:28:17.677 に答える
1

まず、ビルドにリソース バンドルが含まれていないようです。おそらく次のようなものが必要になるでしょう

<mx:Metadata>
        [ResourceBundle("RegistrationForm")]
</mx:Metadata> 

MXML または単に

[ResourceBundle("RegistrationForm")]

あなたのクラスのトップに

それが完了したら、バンドルがあることを確認してください...文字列リソースだけを追加して、それを取得できるかどうかを確認してください。バンドルを持っていて、それでもうまくいかない場合は、アイコンのさまざまなパスを試してみてください。それらはリソースに関連していない可能性があります(それで遊んでいないと、何が何に関連しているか思い出せません)。

于 2009-04-20T07:31:51.753 に答える