2011-01-10 13 views

Odpowiedz

9

Ten kod rade:

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; Wielkie dzięki! – robertp

1

Dodatkowo, prawdopodobnie będą musiały zawierać czcionek używasz w swojej bibliotece

+1

Nie, w tym czcionki nie są konieczne. –

0

miałem również sukcesy z FlarabySWF - to kosztuje pieniądze (nie wiele), ale to faktycznie działa całkiem dobrze w moim doświadczeniu.

+0

Kochanie warunków licencji Flaraby ..."Jako nabywca FlarabySWF możesz go użyć pod warunkiem, że tekst, który chcesz przekonwertować, i tekst konwertowany NIE zawierają ani nie insynuują w żaden sposób niczego, co naruszałoby islamskie szariaty lub jest przeciwko samemu islamowi, w tym między innymi : wszelkie prace, które są sprzeczne z etyką islamską, takie jak seks lub pornografia, hazard, wszystko, co jest sprzeczne z religiami lub posłańcami/prorokami ". – chichilatte

1

spróbować dodać TextFormat z przyzwoitości prawej wyrównanie

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

Dostarczenie zrzutu ekranu dałoby ci dodatkowe punkty :) –

+0

jesteś pewien, że to tylko działa poprawnie wyświetlając języki RTL? bo myślę, że to wszystko powoduje, że wszystko jest wyrównane – clamp

+0

Wypróbuj komponent swc o nazwie flaraby, który pomaga w języku LLangges –

2

Wiem, że to stary wątek. Ale wciąż najbardziej przydatny fragment tekstu RTL. Dzięki Ellen.

Dodam pewne doświadczenia w kodowania dla iOS na Flash Builder 4.7 w czasach CC:

Flash Builder nie jest dostarczany z TLFTextField i jej klas pomocniczych potrzebnych do wyświetlania innych języków arabskiego i RTL na iOS.

Pomiędzy CS6 i CC Adobe nawet opuścił te klasy z Flash Professional. Prawdopodobnie dlatego, że poprawiono standardową klasę TextField.

Nadal w systemie iOS RTL i i Ligature arabskie nie będą działać po wyjęciu z pudełka. Jeśli użyjesz klasy TextField, AirSimulator FlashBuilder wyświetli się poprawnie. Nie, jeśli uruchamiasz ten sam kod na iOS.

StageText i jego wrapper NativeText będą renderowane poprawnie, ale mają wady w przypadku tekstu statycznego.

Możesz pomyśleć o ponownym wprowadzeniu TLFTextField. Oto w jaki sposób można to zrobić:

  • Install Flash Professional CS6 z Creative Cloud,
  • W "libs" podfolderze programfolder znajdziesz dwa SWCS które zawierają klas potrzebnych do korzystania TLFTextField (!) : TLFRuntime.swc & textLayout.swc
  • Skopiuj SWC w ProjectFolder i umieścić go w programie Flash Builder otwierając właściwości Twojego projektu -> ActionScript Budowanie Path -> Ścieżka Biblioteka -> Dodaj SWC (SWC-lub Dodaj Folder)

To powinno uczynić Ellen's c Ode pracuje nad FlashBuilderem 4.7 dla iOS z Air SDK 3.9

Prawdopodobnie można spodziewać się, że standard TextField będzie wyświetlał poprawnie arabski i inne języki RTL w przyszłych wersjach Air.