AS3 – tabIndex en campos de texto TLFTextField

Publicado por Iván Gajate el 26 de noviembre de 2012 en AS3, Flash

Ya vimos como asignar el orden de tabulación en varios campos de texto, sin embargo si los campos de texto son de tipo TLFTextField (para poder escribir en idiomas no latinos entre otras cosas), la forma normal de hacerlo no funciona, Adobe explica aquí como se hace.

InteractiveObject(miCampo.getChildAt(1)).tabIndex = 3;

He escrito esta clase para simplificar el proceso de asignar el orden de tabulación de varios campos de texto, sean TLFTextField o TextField normales:

import es.yporqueno.utils.TextFieldUtils;
 
es.yporqueno.utils.TextFieldUtils.setTabOrder([campo1, campo2, campo4, campo3], stage);

 

function setTabOrder(fields:Array, st:Stage):void {
	if (fields.length == 0) {return;}
	var i:uint = 1;
	for each (var f:Object in fields) {
		if (es.yporqueno.utils.ObjectUtils.getClass(f) == TLFTextField) {
			InteractiveObject((f as TLFTextField).getChildAt(1)).tabIndex = i;
		} else if (es.yporqueno.utils.ObjectUtils.getClass(f) == TextField) {
			InteractiveObject(f).tabIndex = i;
		}
		i++;
	}
 
	var firstField:Object = fields[0];
	if (es.yporqueno.utils.ObjectUtils.getClass(firstField) == TLFTextField) {
		st.focus = InteractiveObject((firstField as TLFTextField).getChildAt(1));
	} else if (es.yporqueno.utils.ObjectUtils.getClass(firstField) == TextField) {
		st.focus = InteractiveObject(firstField);
	}
}

 

Descargar TextFieldUtils.as (Hace uso de otras clases del paquete)

Descargar todo el paquete es.yporqueno

 

Los comentarios están cerrados.