Comunidad de diseño web y desarrollo en internet online

alineacion vertical de un text de un cuadro de texto, es posible?

Citar            
MensajeEscrito el 09 Ene 2012 10:54 am
Mi pregunta es la siguiente tengo un textfield asociado evidentemente a un textformat, el textfield tiene el border en true, la caja de texto es del tipo input -->

Código :

td1.type=TextFieldType.INPUT;
me gustaria que tanto el cursor como el texto que apareciera estuviera centrado, lei algunas webs en las que para eso hacia dos cosas, dibujar un cuadro aparte (en as3 ) y poner el border en false, (solucion cutre porque para que tienes la opcion border en la clase textfield si no puedes centrarla verticalmente) y luego la otra solucion era poner multilinea y centrarlo como multilinia, el caso es que le pongo como multiline=true; pero no se como hacer para que se centre verticalmente, no se si voy errado pero ahora estoy probando el scrollV, el caso es que no me hace absolutamente nada, como vereis en el codigo añadi un timer el cual me cambia de color segun el numero de letras que añado, pero no creo que eso influencie en nada, mientras tanto sigo probando con scrollv aqui os dejo el texto, y gracias por leerme-->

Código :

var ti1:Timer=new Timer(500,0);
ti1.addEventListener(TimerEvent.TIMER, f01);
var tf1:TextFormat=new TextFormat();
tf1.size=20;
tf1.font='lucida console';

var td1:TextField=new TextField();
td1.wordWrap=true;
trace(td1.textHeight);

function f01(e:TimerEvent){
var st1:String=new String();
st1=td1.text;
if(td1.length<6){tf1.color=0xa0142e;};
if(td1.length>5){tf1.color=0x22691d;};
td1.defaultTextFormat=tf1;
td1.text=st1;
}
td1.border=true;
td1.borderColor=0xeeeeee; 
td1.x=100;
td1.y=100;
td1.width=140;
td1.height=30;
td1.restrict="a-zA-Z0-9_.";
td1.maxChars=10;
td1.type=TextFieldType.INPUT;
ti1.start();
addChild(td1);
 

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Ene 2012 02:16 pm
No veo que le hayas puesto align al textformat

tf1.align = TextFormatAlign.CENTER

Aplícalo luego de setear el texto

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 09 Ene 2012 03:00 pm
Hola, no se si te entendi bien,,, pero prueba el siguiente codigo y dinos si te fue de ayuda:

Código ActionScript :

import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.text.TextFormatAlign;



var format:TextFormat = new TextFormat();
format.align = TextFormatAlign.CENTER;

var miTxt:TextField = new TextField();

miTxt.border = true;
miTxt.width = 150;
miTxt.wordWrap = true;
miTxt.type = TextFieldType.INPUT;;
miTxt.autoSize = TextFieldAutoSize.CENTER;
miTxt.multiline = true;

miTxt.defaultTextFormat = format;


addChild(miTxt);



Saludos


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 09 Ene 2012 05:47 pm
entiendo que ya lo hace automaticamente miTxt.autoSize = TextFieldAutoSize.CENTER, pero quiero que la caja de texto sea estatica y que controle exactamente la altitud de esa caja y controlar exactamente el texto dispuesto en esa caja de texto, por lo que he visto eso no es posible, porque con el autosize el mismo te crea las dimensiones de la caja textfile y respecto a TextFormatAlign la alineacion que me crea es en horizontal no en vertical, el tema es que tendria que crear una clase nueva similar a la clase textfield para poder hacer eso, he estado probando con la clase stylesheet y he visto que la informacion que quiero variar corresponde a getLineMetrics pero esta solo esta en funcion read-only, hay una clase que se llama TextLineMetrics pero no se como debo aplicarla para hacer visible un texto, la idea es que pudiera modificar la propiedad ascent que es la distancia entre la linea base y la medida ascendente, incluso tendria que crear un cursor propio de texto --> la idea es esta

Código :

var ti1:Timer=new Timer(10,0);
ti1.addEventListener(TimerEvent.TIMER, f01);
//cursor:Sprite=new Sprite();

var tf1:TextFormat=new TextFormat();
tf1.indent=7;
tf1.size=20;
tf1.font='lucida console';
var n:uint=0;
var k:uint=0;
var t:uint=0;
var td1:TextField=new TextField();
var pizarra:Sprite=new Sprite();
pizarra.alpha=0;
pizarra.graphics.lineStyle(1,0xa4c8ee);
pizarra.graphics.moveTo(108,102);
pizarra.graphics.lineTo(108,123);
ti1.addEventListener(TimerEvent.TIMER,cursor1);
stage.addEventListener(MouseEvent.CLICK,f03);
td1.addEventListener(MouseEvent.CLICK,f02);
function f03(e3:MouseEvent):uint{k=1;return k;};
function f02(e2:MouseEvent):uint{t=1;return t;};

function cursor1(event:TimerEvent):void{
   trace(td1.caretIndex);
   
   if(t==1){
   if((k==0)&&(n==0)){n=n+1;k=1;};
   if((k==1)&&(n<40)){n=n+1;k=1;if(n==40){k=2;};}
   if((k==2)&&(n>0)){n=n-1;k=2;if(n==1){k=1;};}                              
   trace(n);
   pizarra.alpha=n/50;
   pizarra.x=td1.caretIndex*12;
   
   addChild(pizarra);
} if(k==1){removeChild(pizarra);};
}
function f01(e:TimerEvent){
var st1:String=new String();
st1=td1.text;
if(td1.length<6){tf1.color=0xa0142e;};
if(td1.length>5){tf1.color=0x22691d;};
td1.defaultTextFormat=tf1;
td1.text=st1;
}
td1.border=true;
td1.selectable=false;
td1.borderColor=0xa4c8ee; 
td1.x=100;
td1.y=100;
td1.width=140;

td1.restrict="a-zA-Z0-9_.";
td1.maxChars=10;
td1.type=TextFieldType.INPUT;
td1.height = td1.textHeight+9;
ti1.start();


addChild(td1);

evidentemente querria eliminar la clase textfield y crear mi propia textfield pero sin passar por el textfield( cosa que no se si es posible), de todas maneras gracias por leerme, sigo investigando

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 09 Ene 2012 05:51 pm
respecto a TextFormatAlign la alineacion que me crea es en horizontal no en vertical


¿Alineación vertical?

evidentemente querria eliminar la clase textfield y crear mi propia textfield pero sin passar por el textfield


Aha ... ok ... ya nos cuentas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 10 Ene 2012 04:27 am
para hacerme entender, intentar crear una clase que pueda controlar la metrica de las lineas de una caja de texto, controlar las propiedades cuando hacemos un getlinemetrics a un textfield, que son solo de lectura.

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 10 Ene 2012 08:39 am
de momento culego aki mi trabajo de esta caja de texto

Código :

var tf1:TextFormat=new TextFormat();
tf1.indent=7;tf1.size=20;tf1.font='lucida console';var n:uint=0;var k:uint=0;
var t:String='';var m1:int;var m2:int;var ff:uint=0;
var td1:TextField=new TextField();var pizarra:Sprite=new Sprite();
pizarra.alpha=0;pizarra.graphics.lineStyle(1,0xa4c8ee);pizarra.graphics.moveTo(108,102);
pizarra.graphics.lineTo(108,123);stage.addEventListener(MouseEvent.CLICK,f04);
function f04(e2:MouseEvent):int{if(e2.target!=td1){m1=0;};if(e2.target==td1){m1=1;};return m1;};
var ti1:Timer=new Timer(10,0);
ti1.addEventListener(TimerEvent.TIMER, f00);
ti1.addEventListener(TimerEvent.TIMER,cursor1);
function cursor1(event:TimerEvent){
if(m1==1){
   if((k==0)&&(n==0)){n=n+1;k=1;};
   if((k==1)&&(n<40)){n=n+1;k=1;if(n==40){k=2;};}
   if((k==2)&&(n>0)){n=n-1;k=2;if(n==1){k=1;};}                              
   pizarra.alpha=n/40;
   pizarra.x=td1.caretIndex*12;
   addChild(pizarra);
   ff=1;}
if(m1==0){if(ff==1){removeChild(pizarra);ff=0;}}
} 
function f00(e:TimerEvent){
var st1:String=new String();
st1=td1.text;if(td1.length<6){tf1.color=0xa0142e;};if(td1.length>5){tf1.color=0x22691d;};
td1.defaultTextFormat=tf1;td1.text=st1;}
td1.border=true;td1.selectable=false;td1.borderColor=0xa4c8ee; 
td1.x=100;td1.y=100;td1.width=140;td1.restrict="a-zA-Z0-9_.";td1.maxChars=10;
td1.type=TextFieldType.INPUT;td1.height = td1.textHeight+9;ti1.start();
addChild(td1);

probad a ver que os parece, voy a intentar ver como puedo modificar los las propiedades de lineMetrics, un saludo gracias por leerme

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Ene 2012 07:47 am
Y usar Flash Builder y TLFTextField?

Por isidoro

Claber

498 de clabLevel

2 tutoriales

Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Ene 2012 09:35 am
TLFTextField es lo que buscaba gracias

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox

 

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