3

少し前に作成した Flex アプリケーションの新しい「ライト」バージョンを作成中です。多くのクラスとコンポーネントを、SWC ファイルをコンパイルする Flex ライブラリ プロジェクトに移植してきました。どちらも Cairngorm アプリケーションであるため、重複したコードを完全に排除することはできませんが、アイコン (PNG ファイル) などのアセットを共有できるようにすることは当然のことと思われます。これを行う最善の方法は何ですか?それらを SWC に含めようとしましたが、アプリケーションでそれらにアクセスする方法がわかりません。あなたがそれを理解するのを手伝ってくれるなら、私の質問は答えられます. 何かご意見は?

現在、Flex アプリケーションにアイコン/画像を埋め込む方法の例を次に示します。

<mx:Script>
    <![CDATA[
        [Bindable]
        [Embed(source="assets/icons/cancelIcon.png")]
        private var cancelIcon:Class;

        [Bindable]
        [Embed(source="assets/icons/saveIcon.png")]
        private var saveIcon:Class;
    ]]>
</mx:Script>

ありがとう。

4

3 に答える 3

4

0) まず、上記のコードを見てください。いくつかのマイナーな変更をお勧めします。

// Actionscript instead of MXML:
public class ResourceClasses
{
        Bindable]
        [Embed(source="assets/icons/cancelIcon.png")]
        public static var CancelIconClass:Class;

        // make your variable public and static without public no one 
        // outside the class can access AND bindable won't matter
}

---- 次に、ライブラリをコンパイルします。---- アセットが適切な場所にない場合、コンパイラは文句を言います

1) アプリケーションで、ライブラリ プロジェクト / swc を参照する必要があります。

---- アプリケーションのクラスからライブラリ プロジェクトのクラスへのコード ヒント / Flex Builder の intellisense / eclipse を取得できるはずです

2) アプリケーションで - 次のようなコードを実行します。

var image:Image = new Image();
image.source = ResourceClasses.CancelIconClass;

// more image property setting... 

someCanvas.addChild(image);

3)これでうまくいきます-ライブラリプロジェクトを使用して画像などを保持します...

*** 注意: 画像を複数回ロードしたり、再利用したりする必要がある場合 -- 最高のパフォーマンスを引き出すために必要な手順は他にもあります...

于 2009-06-10T03:29:55.563 に答える
0

さて、@ Gabrielのアドバイスを使用して、これが私が最終的に得たものです:

package
{
    [Bindable]
    public class ResourceClasses
    {
        [Embed(source="assets/icons/cross.png")]
        public static var CancelIconClass:Class;
    }
}

このように私のアプリケーションで参照されます:

<?xml version="1.0" encoding="utf-8"?>
<mx:Box xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Button label="Cancel Changes" icon="{ResourceClasses.CancelIconClass}" />
</mx:Box>

ありがとう!

于 2009-06-10T15:06:45.420 に答える
0

livedocsのこのセクションは、あなたにとって興味深いものです。

http://livedocs.adobe.com/flex/3/html/help.html?content=building_overview_5.html

アセットを埋め込み、機能していない結果のswcでそれらを使用しようとしている具体的な例はありますか?あなたの問題はそれらをswcに埋め込むこと、または実際のアプリケーションでswcからそれらを使用することにあると思いますか?

于 2009-06-09T17:54:09.873 に答える