我怎样才能加载图像作为图标变成动态使用Flex一个TileList?
-
22-08-2019 - |
题
好了,我有一个自定义渲染我已经创建:
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalAlign="center"
verticalAlign="middle"
width="100"
height="100">
<mx:Script>
<![CDATA[
[Bindable]
private var fileLabel:String;
[Bindable]
private var fileIcon:Class;
override public function set data(value:Object):void{
fileLabel = value.label;
fileIcon = value.file.url;
}
]]>
</mx:Script>
<mx:Image source="{fileIcon}" />
<mx:Label text="{fileLabel}" />
</mx:VBox>
这是我想使用一个照相馆与被拖拽到一个TileList的图像。我有一部分下来,但我似乎无法得到的东西图标的工作。
假设:值排序包装为文件类。我想设置MX:图片来源的东西,必须是Class类型。使用的nativePath或网址给我一个铸错误。我看到吨在线的例子使用XML和类似“嵌入(/url/to/img.jpg)”。我答应你,如果你给我其中的一个例子(使用静态图片)我会给你一个反对票。那不是IM这里寻找!
解决方案
,这是不工作的原因是因为所述fileIcon
属性的类型是Class
。你会总的来说,如果你打算使用它就像一个工厂,创建类的实例与它只会想类型Class
的对象。当使用[Embed]
元数据,则是指示它应该嵌入指定资产到SWF,并且还产生一个Class
充当工厂自动售货机对象实例可以表示该资产的编译器。然而,正如你已经张贴了这个问题之前就已经发现,与[Embed]
的问题是,你需要硬编码的参考,它不会让你提供在运行时的值(因为编译器需要逐字嵌入资产,在编译时)。
幸运的是,mx:Image.source
是也接受字符串(尽管大多数文档演示使用它与嵌入资产的事实)非常灵活的特性。只要Flex应用程序能够装载资产的,可以只提供一个字符串类型的URL作为source
。
更改fileIcon
的类型为字符串,并且还验证value.file.url
实际上是你的应用程序可以加载的图像的URL。 (您可以只用硬编码将该URL mx:Image
的source
属性进行测试。)
不隶属于 StackOverflow