Comunidad de diseño web y desarrollo en internet online

textWidth

Citar            
MensajeEscrito el 10 Jun 2009 09:08 am
Hola, soy diseñadora y no se mucho de AS pero lo intento. Tengo un problema hace varios días que no puedo resolver.
La idea es que el usuario introduce un testo en un imputText, elije una tipografía, un color....hasta allí llego (siempre trabajando con textos dinámicos en el stage). Ahora quiero que el usuario elija un ancho y yo le responda en un campo dinámico que altura tendrá. Trabajé con textWidth y textHeight pero cuando verifico esas medidas trazando el texto no corresponden. Qué hago mal? o como es posible obtener esos datos con precision? Aquí les adjunto mi código (trabajo en AS2)...desde ya MIL GRACIAS.

var myformat:TextFormat = new TextFormat();
myformat.font = "theFontName";
the_txt.embedFonts = true;
the_txt.text = "hello";
the_txt.setTextFormat(myformat);

var ancho = the_txt.textWidth;
var alto = the_txt.textHeight;

trace("alto: "+alto+", ancho: "+ancho);

Por claudiacorrada

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Jun 2009 01:03 pm
¿El texto dinámico tiene la propiedad autoSize en true?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 10 Jun 2009 02:08 pm
Si, nada cambia....tienes alguna idea?

Por claudiacorrada

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Jun 2009 03:00 pm
¿Cuál es el ancho real y cuál es el ancho que te lanza?

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 10 Jun 2009 03:10 pm
Las medidas que me devuelve el trace son alto: 123, ancho: 203
y las medidas reales alto: 76,4, ancho: 181,1
te he subido el ejemplo a http://www.kuyata.com/medida.zip

gracias por tomarte tantas molestias, espero que podamos resolverlo, es muy importante para mi.

Por claudiacorrada

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Jun 2009 04:04 pm
No subas el flash, sólo preguntas las dudas.

Sólo quería saber si eran grandes diferencias, pero viendo los número me doy cuanta de algo. Un texto dinámico siempre tiene un espacio entre las letras y el borde el texto, este es el espacio máximo de todos los caracteres que lo componen y aparte de este espacio hay un pequeño espacio más, por lo que el ancho y alto del texto te dará el ancho de la caja que contiene el texto no el ancho que ocupan visualmente sus caracteres.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 10 Jun 2009 04:34 pm
El problema es que yo le debo decir al cliente que elija una tipografía y un ancho, porque yo así puedo obtener el alto (real) y generar un archivo para producir ese tento en un material tangible....vinilo, foam, pvc....entonces las medidas deben ser reales...o por lo menos debo saber la relación entre el alto y el ancho ...pero eso varía con la tipografía que el usuario elija, el texto que tipee y el ancho u alto que me solicite, me explico?....a ver si se te ocurre alguna solucion....yo pensé que _width me daba el anco del campo y textWidth me daba el ancho del texto como si estuviese trazado....no es así verdad?

Por claudiacorrada

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Jun 2009 05:01 pm
Tienes rezón en que textWidth te da el ancho del texto que contiene el campo de texto, pero aún así este ancho no es igual que el del texto trazado, por ejemplo esta diferencia varía con diferentes tipos de fuentes y es más desproporcionada en fuentes embebidas que en fuentes del dispositivo, es decir que no es algo exacto. Ahora viendo lo que deseas hacer, la diferencia real entre un texto a curvas y uno en un campo dinámico es de píxeles (menos de 74px en realidad son de unos 4 o 5px), esto llevado a un fichero en vinilo si es un tamaño grande las dimensiones se dan en centímetros, pulgadas, metros una diferencia de menos de 74px es despreciable, no tendrías problemas con esto.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 10 Jun 2009 05:10 pm
Lo que me preocupa es que le debo informar automaticamente al cliente, cuando me da un ancho el alto que tendrá su texto para que sepa si entra en el espacio que tiene en el lugar de destino....como hago eso?

Por claudiacorrada

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 10 Jun 2009 05:18 pm
Hazlo sacando proporciones con una versión pequeña del texto, como mismo los pensaste hacer, lo que te quise decir es que cuando le digas al cliente el alto que debe tener su texto quizás por tu cálculo le digas 10 cm y puede ser que la medida real sea 9.89 cm pero esto es despreciable no te preocupes por ello.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 11 Jun 2009 10:38 am
Sigo necesitando que flash sea mas preciso....puesto que las palabras pueden tener 10 metros en la realidad y debo hacer otros archivos que coincidan con lo que me diga flash....y segun los numero que te envié

"trace son alto: 123, ancho: 203 y las medidas reales alto: 76,4, ancho: 181,1" en el primer casola relación entre alto y ancho es 1,65 (203/123) y en el segundo 2,37 (181,1/76,4) eso es una diferencia enorme

No existe la manera de trazar un texto con programación para luego medirlo?

Desde ya gracias por tu tiempo, paciencia y energía.

Por claudiacorrada

5 de clabLevel



 

msie7
Citar            
MensajeEscrito el 11 Jun 2009 12:03 pm
Creo que la diferencia es muy grande, no me había fijado bien. Debes tener algún error y estás comparando dos tipografías diferentes o con distinto puntaje porque es abismal la diferencia. De todas formas trabajando con bitmaps puedes hacer algo un poco más cercano, aunque no exacto, ya que la representación de un píxeles difiere de la representación vectorial de un objeto, pero el margen de error no será tan desproporcionado como el que muestras.

Crea un campo de texto dinámico en la escena y ponle de nombre de instancia "campo" después pega esto en el primer frame y prueba a ver si cumple tus espectativas:

Código ActionScript :

import flash.display.BitmapData;
import flash.geom.Rectangle;

//---Llamar a la función
var obj:Object = getTextSizes(campo);
trace("ancho: " + obj.ancho + " / alto: " + obj.alto);

function getTextSizes(ct:TextField):Object{
   
   var sizes:Object = new Object();
   
   //---Crear el objeto bitmapData
   var bData:BitmapData = new BitmapData(ct._width, ct._height, true, 0x000000);
   bData.draw(ct);
   
   //---Determinar los píxeles que no son transparentes
   var blackBound:Rectangle = bData.getColorBoundsRect(0xFFFFFFFF, 0x00000000, false);
   sizes.ancho = blackBound.width;
   sizes.alto = blackBound.height;

   bData.dispose();
   return sizes;
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 11 Jun 2009 12:08 pm
mil gracias...lo probaré y te cuento

Por claudiacorrada

5 de clabLevel



 

msie7

 

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