2011-01-10 17 views

risposta

9

Questo codice farà il trucco:

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; Grazie mille! – robertp

1

Inoltre, probabilmente sarà necessario includere i caratteri che si utilizzano nella tua libreria

+1

No, compresi i caratteri non è necessario. –

0

Ho anche avuto successo con FlarabySWF - che costa un po 'di soldi (non molto) ma in realtà funziona abbastanza bene nella mia esperienza.

+0

Amare le condizioni di licenza di Flaraby ..."Come compratore di FlarabySWF, puoi usarlo a condizione che il testo che vuoi convertire E il testo convertito NON contenga o insinui in alcun modo a qualsiasi cosa che violi la Sharia islamica o che sia contro l'Islam stesso, incluso ma non limitato a : qualsiasi opera che contraddica l'etica islamica come il sesso o la pornografia, il gioco d'azzardo, tutto ciò che è contro le religioni oi messaggeri/profeti ". – chichilatte

1

tenta di aggiungere textformat con proprietà allineamento a destra

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

Fornire uno screenshot potrebbe ottenere punti bonus :) –

+0

sei sicuro che questo funziona da solo per la corretta visualizzazione delle lingue RTL? perché penso che questo faccia tutto perfettamente allineato – clamp

+0

Provate un componente swc chiamato flaraby che aiuta nelle langauges RTL –

2

So che questo è un vecchio thread. Ma ancora lo snippet più utile in circolazione per RTL Text. Grazie Ellen.

Permettetemi di aggiungere alcune esperienze nella codifica per iOS su Flash Builder 4.7 in tempi di CC:

Flash Builder non viene fornito con il TLFTextField e le sue classi di supporto necessaria per visualizzare l'arabo e altre lingue RTL su iOS.

Tra CS6 e CC Adobe ha persino abbandonato tali classi da Flash Professional. Probabilmente perché la classe standard di TextField è stata migliorata.

Ancora, su iOS RTL e le legature arabe non funzioneranno fuori dalla scatola. Se si utilizza la classe TextField, AirSimulator di FlashBuilder verrà visualizzato correttamente. Non se si esegue lo stesso codice su iOS.

StageText e il relativo wrapper NativeText eseguono correttamente il rendering ma presentano svantaggi per il testo statico.

Si potrebbe pensare di reintrodurre TLFTextField. Ecco come si può fare:

  • Installare Flash Professional CS6 dalla Creative Cloud
  • Nella "libs" sottocartella della ProgramFolder troverete due SWCS che contengono le classi necessarie per utilizzare TLFTextField (!) : TLFRuntime.swc & textLayout.swc
  • Copiare l'SWC nella vostra ProjectFolder e includerlo in Flash Builder aprendo le proprietà del vostro progetto -> ActionScript costruire il percorso -> Libreria Path -> Aggiungi SWC (o Add SWC-Folder)

Questo dovrebbe rendere Ellen c ode lavorare su FlashBuilder 4.7 per iOS con Air SDK 3.9

Probabilmente ci si può aspettare che lo standard TextField visualizzi correttamente l'arabo e altri linguaggi RTL nelle versioni future di Air.