Pregunta

Ok, así que tengo una costumbre hacen que he creado:

<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>

Eso quiero usar para una galería de fotos con imágenes que son arrastrados y colocados en un TileList. Tengo que parte hacia abajo, pero me parece que no puede conseguir la cosa icono para trabajar.

Teniendo en cuenta: el valor es una especie de envoltorio para una clase de archivos. Quiero fijar el MX: Fuente de la imagen a algo que tiene que ser de tipo Class. Usando nativePath url o me da un error de yeso. Veo un montón de ejemplos en línea usando XML y algo así como "Insertar (/url/to/img.jpg)". Te prometo que si me das uno de esos ejemplos (usando una imagen estática) Voy a darle un voto negativo. QUE NO ES LO IM buscando aquí!

¿Fue útil?

Solución

La razón de que esto no está funcionando es porque el tipo de la propiedad fileIcon es Class. Se podría por lo general sólo quiere que un objeto de tipo Class si va a utilizarlo como una fábrica, la creación de instancias de esa clase con él. Cuando utiliza los metadatos [Embed], está indicando al compilador que debe integrar el activo especificado en el archivo SWF, y también generar un Class para actuar como una fábrica de máquinas expendedoras instancias de objetos que pueden representar ese activo. Sin embargo, como ya se había descubierto antes de publicar esta pregunta, el problema con [Embed] es que es necesario codificar la referencia, no deja que proporciona un valor en tiempo de ejecución (debido a que el compilador necesita incorporar literalmente el activo, por lo en tiempo de compilación).

Afortunadamente, mx:Image.source es una propiedad muy flexible que también acepta Cuerdas (a pesar del hecho de que la mayoría de la documentación demuestra que el uso de los activos integrados). Mientras la aplicación Flex es capaz de cargar el activo, sólo puede suministrar una URL String-escrito como el source.

Cambiar el tipo de fileIcon en una cadena, y también verificar que value.file.url es en realidad una URL de una imagen que su aplicación puede cargar. (Esto se comprueba con sólo codificando esta URL en atributo mx:Image del source.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top