好了,我有一个自定义渲染我已经创建:

<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:Imagesource属性进行测试。)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top