Comunidad de diseño web y desarrollo en internet online

Cargar imagen en BorderContainer

Citar            
MensajeEscrito el 14 Oct 2014 01:28 pm
Resulta que tengo un TitleWindow en el que cargo una imagen de fondo tal que así

Código Flex :

<s:BorderContainer id="bd11" horizontalCenter="0" verticalCenter="0" width="100%" height="100%" cornerRadius="7"
         borderWeight="2" backgroundImage="@Embed('assets/pics/imagen.jpg')"
         backgroundImageFillMode="scale" borderColor="blue">         
      <mx:Label x="10" y="10" text="xx"/>      

   </s:BorderContainer>


El caso es que si no pongo el Embed no me funciona; es decir, si en vez de backgroundImage="@Embed('assets/pics/imagen.jpg')" pongo backgroundImage="assets/pics/imagen.jpg" el bordercontainer aparece sin la imagen de fondo. ¿Sabéis el motivo?

Me gustaría poder cargar una imagen de forma aleatoria; el caso es que tengo x números con una imagen asociada cada uno y dependiendo del número aleatorio tendría una variable con el fichero a cargar en el bordercontainer. Como no me funciona sin el Embed lo siguiente no me funciona
backgroundImage="{ficheroACargar}"

¿Se os ocurre algo?

Thanks

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Oct 2014 06:45 pm
Deberías poner un componente Image de fondo con el autoload a true, el background de un componente no esta preparado en principio para cargar fondos runtime.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 16 Oct 2014 05:58 am
Bueno al final he dado con una solución y ha sido la siguiente.
En mi ventana popup (se trata de un titlewindow definido en el fichero window.mxml) he definido las siguientes funciones

Código Flex :

private var loader:Loader;
         private var request:URLRequest;
         private function init():void{            
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad);
            request = new URLRequest(FlexGlobals.topLevelApplication.ficheroACargar);
            loader.load(request);
         }
         private function onLoad(e:Event):void
         {
            var info:LoaderInfo = e.target as LoaderInfo;
            var loader:Loader = info.loader;
            bd11.setStyle('backgroundImage', loader.content);
         }

donde FicheroACargar es una variable global pública que está definida en mi aplicación principal.

Luego nuestro BorderContainer está definido tal que así

Código Flex :

<s:BorderContainer id="bd11" horizontalCenter="0" verticalCenter="0" width="100%" height="100%" cornerRadius="7"   borderWeight="2" backgroundImageFillMode="scale" borderColor="blue">   


donde y como podéis ver no hace falta ni definirle el backgroundImage.

Podéis ver la aplicación final funcionando aquí.

Saludos

Por empardopo

71 de clabLevel



 

chrome
Citar            
MensajeEscrito el 16 Oct 2014 11:53 am
Buen truco!

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.