1

キャプションも含まれるボタンのアイコンとしてFXG画像を使用しようとしています。FXGファイルはresources/SpeakerIcon.fxgにあり、試行した使用法はmxmlファイルで次のようになります。

     <mx:Button id="audioButton" label="Audio"
                   ....
                   icon="{resources.SpeakerIcon}"/>

これを使おうとすると、「TypeError:エラー#1034:タイプ強制が失敗しました:resources::SpeakerIcon@41fa0e1をmx.core.IFlexDisplayObjectに変換できません」というメッセージが表示されます。私の調査によると、FXGファイルはIFlexDisplayObjectを実装するs:Graphicshttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/spark/primitives/Graphic.htmlである必要があります

私が見逃している簡単なことは何ですか?

4

2 に答える 2

3

オブジェクトは、FXG ドキュメントのタグと<s:Graphics/>は異なります。<Graphics/>

<s:Graphics/>は、Spark プリミティブ形状コンポーネント ( など<s:Rect/>) の基本クラスです。これらは、対応する FXG ほど軽量ではありません。そのため、彼らはIFlexDisplayObjectインターフェースを実装していません(@Flextrasが投稿したばかりです:)

SpriteVisualElementFXG アセットは、Flex コードと同じように扱うことができます。これは、技術的には、FXG アセットがIVisualElementインターフェイスを実装することを意味します。

<s:Button/>可能であれば、mx の代わりにSpark クラスを使用してください。<mx:Button/>FXGには対応していないと思います。

于 2012-08-17T01:25:38.810 に答える
1

FXGの場合は、Spriteまたは[あなたの場合] SpriteVisualElementを使用する必要があります。これらのクラスのどちらもIFlexDisplayObjectを実装しているとは思いません。

私のApacheFlexホワイトボードからこのFXGImageクラスにFXG要素をラップすることを検討してください。FXGImageは、IFlexDisplayObjectであるUIcomponentを拡張します。

これは、クラスのソースコードへの直接リンクです。

于 2012-08-17T01:23:24.463 に答える