Для моего приложения на основе 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>
Я связываю источник изображения с публичной переменной path. И когда я пытаюсь поместить этот компонент в свой основной mxml-файл, как показано ниже, и указать «путь» к нему, я не вижу никакой загрузки изображения в пользовательском компоненте. Это остается пустым.
var component:MyCustComponent = new MyCustComponent();
component.path = 'path/to/image.jpg';
addChild(component);
В качестве обходного пути я пытаюсь добавить слушатель creationComplete к холсту в моем пользовательском компоненте, который используется для присвоения titleImage.source = this.path. Это заставило его работать правильно, но мне не помогает, если мне нужно постоянно менять изображение или когда путь к изображению выбирается с помощью какого-то асинхронного вызова. Итак, я хотел бы знать, есть ли альтернатива для решения этой проблемы.
Спасибо !!