2011-05-31 7 views
3

それはFlash Builderにはどのような種類のメディアが埋め込まれていますか?

[Embed(source="images/list.png")] 
protected static const LIST_ICON:Class; 

それはクラスのどのような種類を作成しないの?参照するクラスを作成し、以下のようにFlash Builderでメディアを埋め込みますかそして、もし私がbitmapDataを含んでいたライブラリswcを持っていたら、私はswcからbitmapDataを使って同じ種類のクラスを作るコードをどのように作りますか?

私は、私はそう、私はその後、

var ClassReference:Class = getDefinitionByName("ImageData") as Class; 
を行うことによって、クラスを取得

を使用していますどのようなビットマップを定義し、私のファイルにしていxmlファイルを持っているのBitmapData

としてSWCを持っています

"ImageData"は、xmlが送信する任意のテキストの例です。そのため、取得するswcクラスを動的に決定します。

これを使って、取得したbitmapDataを含むBitmapAssetを拡張するクラスを作成する必要があります。上の最初の2行から埋め込みをエミュレートします。

最終結果

は、私は、これは、その後に渡される

getQualifiedClassName(SomeClass) 

クラス呼び出し、クラスのため、含まれるBitmapDataを取得するために

getDefinitionByName("passedName") 

を使用したシステムを持っているということです。

これはちょっと難しいですが、私はそれを私の最終的にはダイナミックに保つためにこのようにしなければなりません...渡されたデータを扱うコードを変更することはできません。それは名前で渡さなければなりません。

私はそれがより簡単になることを望んでいましたが、これを通常の方法で埋め込み、簡単なスイッチを作ることが簡単になると思い始めました。 XMLの内容

答えて

2

として画像のソースにこれを割り当てることができますLIST_ICONクラスはBitmapAssetを継承します)。あなたの埋め込みについて調整

、コードは次のようになります。

[Embed(source="images/list.png")] 
protected static const LIST_ICON:Class; 

... 

var imgObj:BitmapAsset = new LIST_ICON() as BitmapAsset; 

完全なコード例については、上記のリンクをご覧ください。

+0

+1素晴らしいリソースです。 – Marty

+0

私は何をしようとしているの詳細を追加しました – ThinkNewDev

0

var listIcon:LIST_ICON = new LIST_ICON();を使用してイメージのインスタンスを作成できます。

、あなたがEmbedメタデータのドキュメント(http://livedocs.adobe.com/flex/3/html/help.html?content=embed_4.html)をチェックアウトする場合は、画像が(そのタイプmx.core.BitmapAssetに埋め込まれることを示していますが

image.source = listIcon;

0

リソースを埋め込むと、swfの新しいクラスになります。このクラスの名前が必要です。これは文書化されていませんが(afaik)、解析されたswfから取得できます。たとえば、単純なプログラムTerrainGeneratorを使用するとします。それをコンパイルし、SWiXで解析し、として、私は次のようSymbolClassを参照してください。

<SymbolClass> 
    <Symbol Tag="0" Name="TerrainGenerator" /> 
</SymbolClass> 

これは、珍しい何もメインクラスではありません。次に、私は次のようになります。この

public class TerrainGenerator { 
    [Embed(source="SOME_PNG.PNG")] 
    public static const IMAGE_RESOURCE:Class; 
... 

のような埋め込みコードを追加した場合:

<SymbolClass> 
    <Symbol Tag="1" Name="TerrainGenerator_IMAGE_RESOURCE" /> 
    <Symbol Tag="0" Name="TerrainGenerator" /> 
</SymbolClass> 

そして、私はパッケージsomepackageにクラスresourceにこの埋め込みコードを移動する場合、それは次のようになります。

<Symbol Tag="1" Name="somepackage.resource_IMAGE_RESOURCE" /> 

これらのクラス名を生成するためのルールがあり、swfパーサーでそれらを学ぶことができます。

関連する問題