私のAIRベースのアプリケーションでは、画像を含むキャンバスに基づいてカスタムコンポーネントを作成しようとしています(以下を参照)。
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100" height="100" cornerRadius="5" borderStyle="solid" borderThickness="2" dropShadowEnabled="true" borderColor="#EDEDE8" dropShadowColor="#dddddd" shadowDistance="5" shadowDirection="center">
<mx:Script>
<![CDATA[
public var path:String = "";
]]>
</mx:Script>
<mx:Image id="tileImage" maintainAspectRatio="false" buttonMode="true" useHandCursor="true" source="{path}" width="100%" x="0" height="100%" y="0"/>
<mx:Canvas left="3" top="3" bottom="3" right="3" borderStyle="solid" cornerRadius="5" borderThickness="1" borderColor="#EDEDE8" alpha="0.75">
</mx:Canvas>
画像のソースをパブリック変数パスにバインドしています。そして、このコンポーネントを以下のようにメインのmxmlファイルに配置し、それに「パス」を指定しようとすると、カスタムコンポーネントに画像が読み込まれているのを確認できません。空白のままです。
var component:MyCustComponent = new MyCustComponent();
component.path = 'path/to/image.jpg';
addChild(component);
回避策として、カスタムコンポーネントのキャンバスにcreationCompleteリスナーを追加しようとしています。これは、titleImage.source=this.pathを指定するために使用されます。これで正しく機能しましたが、画像を変更し続ける必要がある場合や、非同期呼び出しを使用して画像のパスを取得した場合は役に立ちません。それで、私はこの問題を解決するための代替案があるかどうか知りたいです。ありがとう!!