Comunidad de diseño web y desarrollo en internet online

Como averiguar el tipo de texfield (dinamico, estatico).

Citar            
MensajeEscrito el 18 Ene 2010 09:58 pm
Estoy haciendo una clase que me devuelve todos los objetos de un tipo X a partir de un nivel de la display list.
La estoy tratando de implementar para que me devuelva todos los textFields, pero me esta devolviendo tanto los estaticos como los dinamicos, y solo me interesan los dinamicos, y no se como averiguar eso.

Alguna idea? algo como if(txt:extField is dynamicText){ }

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Ene 2010 11:01 pm
No estoy seguro de que funcione, pero revisa la propiedad isPrototypeOf(obj:Object):Boolean, busca informacion acerca de ella a ver que te devuelve.

Por pmolina88

74 de clabLevel



Genero:Masculino  

Ingeniero en Sistemas

firefox
Citar            
MensajeEscrito el 19 Ene 2010 12:04 am
Hola,
la propiedad type de la clase TextField te devuelve un string que indica el tipo de textField que es (dynamic ó input):

Código ActionScript :

var tf:TextField = new TextField();
tf.type = TextFieldType.DYNAMIC;
//tf.type = TextFieldType.INPUT;
trace(tf.type);

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Ene 2010 03:53 am
En el caso de TextFieldType...
Tendria que definir su tipo al crear la instancia de TextField, no? Pero que hay con los textFields creados en la gui de flash...

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ene 2010 07:41 am
También puedes usarlo con TextFields creados en modo diseño (dándoles antes el nombre de instancia, claro), pero ten en cuenta que en modo diseño, aparte de input TextField y dynamic TextField, también existen los static TextField, que realmente son tratados como si fuesen una imagen, y con ellos no podrás usar textField.type.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Ene 2010 08:22 am
Bueno, deseaba que flash pudiera decirme el tipo de textFields, sin que primero se lo tenga que decir yo. En este caso no me serviria declarar su tipo ya que el objetivo de la clase, era el de encnotrar todo, incluso si declararles el nombre de instancia.

De momento utilizo telxField_txt.name!=null, para comprobar que al menos sean inputs o dinamicos.

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ene 2010 12:29 pm
El problema no es que no pueda decirte el tipo de TextField que es (de hecho la propiedad type te lo dice: input o dynamic), sino que un StaticText algo diferente a un TextField.
Pero lo cierto es que no me había dado cuenta hasta ahora de que al crear un StaticText en modo diseño no se le puede dar un nombre de instancia (y por lo tanto no puedes hacer referencia a él con AS). Desde AS tampoco se puede crear un objeto StaticText, por eso en la ayuda pone que si quieres crear una referencia a él tienes que recorrer todos los Child:

Código ActionScript :

var i:uint;
for (i = 0; i < this.numChildren; i++)
{
   var displayitem:DisplayObject = this.getChildAt(i);
   trace(displayitem);
   if (displayitem is StaticText)
   {
      trace("a static text field is item " + i + " on the display list");
      var myFieldLabel:StaticText = StaticText(displayitem);
      trace("and contains the text: " + myFieldLabel.text);
   }
}

Yo personalmente usaría antes un TextField dynamic con la fuente incorporada antes que esto.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 19 Ene 2010 07:27 pm
Pues si tienes razon, es mas complicado llamar a StaticText's via AS.
De cualquier forma lo que yo decia era que el tratar de adivinar el tipo de TextField via TextField.Type no funciona si previamente no le asignaste el tipo(TextFieldType).

Ya que segun http://help.adobe.com/es_ES/AS3LCR/Flash_10.0/flash/text/TextField.html#type
Por defecto type=TextFielfType.DYNAMIC; y en principio tanto input's cmo dynamics tendra un type 'dinamico'

Por cpucpu

82 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Ene 2010 08:18 pm
Ah, no. No hace falta.
Si has creado el TextField desde el editor, con type te devuelve el tipo (sin tener que especificarlo con código). A lo que se refiere la ayuda es que si creas una nueva instancia con "new TextField()", por defecto es de tipo dynamic en lugar de input. En el ejemplo que te puse añadí las líneas: tf.type = TextFieldType.DYNAMIC; tf.type = TextFieldType.INPUT; para que vieses cómo cambia la salida del trace con cada uno de los 2 tipos.

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 20 Ene 2010 01:08 am
Ok, ya te entendi, bueno, gracias por todo ya me ha quedado mas claro.

Por cpucpu

82 de clabLevel



 

firefox

 

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