2011-01-10 8 views

Respuesta

9

Este código hará el truco:

import flash.text.AntiAliasType; 
import flash.text.TextField; 
import flash.text.TextFieldAutoSize; 
import flash.external.* 
import fl.text.TLFTextField; 
import flash.text.TextFormat; 

import flashx.textLayout.formats.TextLayoutFormat; 
import flashx.textLayout.elements.TextFlow; 


var arabicTextField:TLFTextField = new TLFTextField(); 
arabicTextField.antiAliasType = AntiAliasType.ADVANCED; 
arabicTextField.mouseEnabled = false; 
arabicTextField.selectable = false; 

arabicTextField.direction = flashx.textLayout.formats.Direction.RTL; 

var fmt:TextFormat = new TextFormat(); 
fmt.color = 0xFFFFFF; 
fmt.font = "arialArabic" 
arabicTextField.embedFonts = false; 
arabicTextField.defaultTextFormat = fmt; 
arabicTextField.setTextFormat(fmt); 
+0

arabicTextField.direction = flashx.textLayout.formats.Direction.RTL; ¡Gracias un montón! – robertp

1

Además, es probable que necesite para incluir las fuentes que utiliza en su biblioteca

+1

No, incluidas las fuentes no es necesario. –

0

También he tenido éxito con FlarabySWF - cuesta algo de dinero (no mucho), pero en realidad funciona bastante bien en mi experiencia.

+0

Condiciones de licencia de Loving the Flaraby ..."Como comprador de FlarabySWF, puede usarlo bajo la condición de que el texto que desea convertir Y el texto convertido NO contenga o insinúe de ninguna manera cualquier cosa que viole la Sharia islámica o que esté contra el mismo Islam, incluidos, entre otros, : cualquier obra que contradiga la ética islámica como el sexo o la pornografía, los juegos de apuestas, todo lo que sea contra las religiones o los Mensajeros/Profetas ". – chichilatte

0

Si usted no está opone a la estructura de Flex, que ahora incluye una biblioteca de internacionalización decente que debería permitirle hacer esto fácilmente. He aquí un lugar decente para empezar http://devgirl.org/2011/03/15/flex-4-localization/

1

intenta agregar textformat con propiedad alineación a la derecha

var txtFormat:TextFormat = new TextFormat(); 
txtFormat.align = "right"; 
+0

Proporcionar una captura de pantalla le daría puntos de bonificación :) –

+0

¿está seguro de que esto solo funciona para la correcta visualización de los idiomas RTL? porque creo que esto solo hace que todo esté alineado – clamp

+0

Pruebe un componente de swc llamado flaraby que ayude en lenguajes RTL –

2

Sé que esto es un hilo de edad. Pero sigue siendo el fragmento más útil para Texto RTL. Gracias, Ellen.

Permítaseme añadir algunas experiencias en la codificación para iOS en Flash Builder 4.7 en tiempos de CC:

Flash Builder no se entrega con el TLFTextField y sus clases de apoyo necesario para mostrar el árabe y otros idiomas RTL en IOS.

Entre CS6 y CC Adobe incluso ha eliminado esas clases de Flash Professional. Probablemente porque la clase estándar de TextField se ha mejorado.

Aún así, en iOS RTL y árabe Ligatures no funcionará fuera de la caja. Si usa la clase TextField, AirSimulator de FlashBuilder se mostrará correctamente. No si ejecuta el mismo código en iOS.

StageText y su contenedor NativeText se mostrarán correctamente pero tienen desventajas para el texto estático.

Puede pensar en reintroducir TLFTextField. He aquí cómo usted puede hacerlo:

  • Instalar Flash Professional CS6 de la Creative Cloud
  • En la subcarpeta "libs" de la carpetaprograma encontrará dos SWCs que contienen las clases necesarias para utilizar TLFTextField (!) : TLFRuntime.swc & textLayout.swc
  • Copiar el SWC en su ProjectFolder e incluirla en flash Builder mediante la apertura de las propiedades de su proyecto -> ActionScript Build Path -> Ruta de la biblioteca -> Add SWC (o Add SWC-carpeta)

Esto debería hacer c de Ellen ode trabajo en FlashBuilder 4.7 para iOS con Air SDK 3.9

Probablemente podría esperar que el TextField estándar muestre el árabe y otros lenguajes RTL correctamente en versiones futuras de Air.

Cuestiones relacionadas