Comunidad de diseño web y desarrollo en internet online

Flex: parametro de componente

Citar            
MensajeEscrito el 28 Feb 2009 05:33 pm
Al presionar un boton estoy anexando un componente canvas en otro canvas:

Código :

var miComponente:Test = new Test();
contenedor.addChild(miComponente);

como hago para pasar un parametro a miComponente?

el codigo de mi componente es:

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" xmlns:components="components.*" >
   <mx:creationComplete>
      <![CDATA[
         trace(typeof(parametro));
      ]]>
   </mx:creationComplete>
</mx:Canvas>

pero claro, no se como pasar dicho parametro... :(
alguna idea?

gracias

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 01 Mar 2009 12:07 pm
Debes añadir una variable pública en tu componente, luego le declaras el valor al momento de instanciar tu componente.

Instancia:

Código ActionScript :

var miComponente:Test = new Test();
miComponente.miParametro = "Mi valor es una cadena";
contenedor.addChild(miComponente);


Componente:

Código ActionScript :

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" xmlns:components="components.*" >
   <mx:Script>
      <![CDATA[
         public var miParametro:String;
      ]]>
   </mx:Script>
</mx:Canvas>


Si quieres acceder al parámetro en el mxml debes añadir [Bindable] antes de la linea public var miParametro:String;

ejemplo:

Código ActionScript :

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" xmlns:components="components.*" >
   <mx:Script>
      <![CDATA[
         [Bindable]
         public var miParametro:String;
      ]]>
   </mx:Script>
   <mx:Label text="{miParametro}" />
</mx:Canvas>


Espero que sirva de ayuda.

saludos

Por w00p

24 de clabLevel



 

safari
Citar            
MensajeEscrito el 13 Mar 2009 11:36 am
Hola, yo tengo un problema parecido e seguido los consejos que das pero me peta cuando el programa intenta ir hacia el componente y me gustaria saber haver como puedo solucionarlo.

main.mxml

Código :

import componentes.Componente1;

private function enlazaComponente():void{
          var prueva:Componente1;
          prueva.ejcomp = "texto de prueva";/* cuando el programa llega aqui es 
                                                            cuando me peta y no ejecuta el resto de la funcion*/
         ...
}


Componente.mxml

Código :

[Bindable]
       public var ejcomp:String;
...


Un saludo y gracias por el tiempo prestado.

Por Asur

10 de clabLevel



 

msie7
Citar            
MensajeEscrito el 13 Mar 2009 12:25 pm
var prueva:Componente1;
debiese ser:
var prueva:Componente1 = new Componente1();

salut

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox

 

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