2010-08-25 73 views
0

对于基于AIR的应用程序,我尝试基于具有图像的画布创建自定义组件(如下所示)。在flex中创建自定义组件时使用图像

<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。这使它正常工作,但它不能帮助我,如果我必须不断改变图像或使用一些异步调用获取图像的路径。所以,我想知道是否有其他解决方案来解决这个问题。 谢谢!

回答

1

看起来你只是缺少路径的可绑定元标记。为您的路径声明尝试:

[Bindable] 
public var path:String; 
+0

感谢好友!那一个工作:) – Goje87 2010-08-26 08:14:15

相关问题