2011-01-10 7 views

Antwort

9

Dieser Code wird den Trick:

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; Vielen Dank! – robertp

2

Die kann von rechts nach links Text umgehen.

1

Zusätzlich Sie wahrscheinlich die Schriften, die Sie in Ihrer Bibliothek verwenden, enthalten müssen

+1

Nein, einschließlich Schriftarten ist nicht erforderlich. –

0

Ich habe auch Erfolg mit FlarabySWF - es kostet etwas Geld (nicht alot), aber es funktioniert eigentlich ganz gut in meiner Erfahrung.

+0

Loving the Flaraby Lizenzbedingungen ..."Als Käufer von FlarabySWF können Sie es unter der Bedingung verwenden, dass der Text, den Sie konvertieren möchten, und der umgewandelte Text in keiner Weise etwas enthält oder andeutet, das die islamische Scharia verletzt oder gegen den Islam selbst ist, einschließlich, aber nicht beschränkt auf : irgendwelche Werke, die der islamischen Ethik widersprechen, wie Sex oder Pornographie, Glücksspiel, alles, was gegen Religionen oder Boten/Propheten ist ". – chichilatte

0

Wenn Sie sich an den Flex-Framework nicht dagegen, es enthält jetzt eine anständige Internationalisierung Bibliothek, die Sie dies leicht tun sollen ermöglichen. Hier ist ein ordentliches Hotel, um loszulegen http://devgirl.org/2011/03/15/flex-4-localization/

1

Versuch Textformat mit Anstand richtigen Ausrichtung hinzufügen

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

Die Bereitstellung eines Screenshots würde Ihnen Bonuspunkte bringen :) –

+0

Sind Sie sicher, dass dies alleine für die korrekte Anzeige von RTL-Sprachen funktioniert? weil ich denke, dass dies nur alles richtig ausgerichtet – clamp

+0

Versuchen Sie eine SWC-Komponente namens Flaraby, die in RTL-Sprachen zu helfen –

2

Ich weiß, dass dies ein alter Thread ist. Aber immer noch das nützlichste Snippet für RTL Text. Danke, Ellen.

Lassen Sie mich einige Erfahrungen für iOS auf Flash Builder 4.7 in Zeiten von CC bei der Codierung hinzu:

Flash Builder nicht mit dem TLFTextField und seine unterstützenden Klassen mitliefert benötigt Arabisch und anderen Sprachen RTL auf iOS angezeigt werden soll.

Zwischen CS6 und CC hat Adobe sogar diese Klassen aus Flash Professional gelöscht. Wahrscheinlich, weil die Standard-TextField-Klasse verbessert wurde.

Noch, auf iOS RTL und Arabisch Ligaturen funktioniert nicht out of the Box. Wenn Sie die TextField-Klasse verwenden, wird der AirSimulator von FlashBuilder korrekt angezeigt. Nicht, wenn Sie denselben Code unter iOS ausführen.

StageText und sein NativeText-Wrapper werden korrekt gerendert, haben aber Nachteile für statischen Text.

Sie könnten TLFTextField wieder einführen. Hier ist, wie Sie es tun können:

  • Installieren Sie Flash Professional CS6 von der Creative Cloud
  • Im „Libs“ Unterordner des Programmverzeichnis finden Sie zwei SWC finden, die die Klassen enthalten, benötigt TLFTextField zu verwenden (!) : TLFRuntime.swc & textLayout.swc
  • Kopieren sie die SWC in Ihrem ProjectFolder und es in Flash Builder enthalten, indem sie Ihre Projekteigenschaften zu öffnen -> Actionscript-Build Path -> Library Path -> Add SWC (oder hinzufügen SWC-Ordner)

Dies sollte Ellen machen c ode Arbeit an FlashBuilder 4.7 für iOS mit Air SDK 3.9

Sie könnten wahrscheinlich erwarten, dass das Standard-TextField Arabisch und andere RTL-Sprachen in zukünftigen Versionen von Air korrekt anzeigt.