9 Stimmen

Arabischer Text in as3

Wie kann ich mit as3 arabischen Text von rechts nach links anzeigen?

9voto

Ellen S Punkte 1007

Dieser Code erfüllt diesen Zweck:

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);

2voto

maxmc Punkte 4148

Le site Text-Layout-Rahmen kann Text von rechts nach links verarbeiten.

2voto

Al Coda Punkte 56

Ich weiß, dies ist ein altes Thema. Aber es ist immer noch das nützlichste Snippet für RTL Text. Danke Ellen.

Ich möchte einige Erfahrungen mit der Programmierung für iOS mit Flash Builder 4.7 in Zeiten von CC hinzufügen:

Flash Builder wird nicht mit dem TLFTextField und den unterstützenden Klassen ausgeliefert, die für die Anzeige von Arabisch und anderen RTL-Sprachen unter iOS benötigt werden.

Zwischen CS6 und CC hat Adobe diese Klassen sogar aus Flash Professional gestrichen. Wahrscheinlich, weil die Standardklasse TextField verbessert wurde.

Unter iOS funktionieren RTL- und arabische Ligaturen jedoch nicht ohne Weiteres. Wenn Sie die TextField Klasse AirSimulator von FlashBuilder verwenden, wird korrekt angezeigt. Nicht, wenn Sie den gleichen Code auf iOS laufen.

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

Man könnte darüber nachdenken, TLFTextField wieder einzuführen. Hier ist, wie Sie es tun können:

  • Installieren Sie Flash Professional CS6 (!) aus der Creative Cloud
  • Im Unterordner "libs" des Programmordners finden Sie zwei SWCs, die die für die Verwendung von TLFTextField erforderlichen Klassen enthalten: TLFRuntime.swc & textLayout.swc
  • Kopieren Sie die SWC in Ihren Projektordner und fügen Sie sie in Flash Builder ein, indem Sie die Projekteigenschaften -> ActionScript Build Path -> Library Path -> Add SWC (oder Add SWC-Folder) öffnen.

Damit sollte Ellens Code unter FlashBuilder 4.7 für iOS mit Air SDK 3.9 funktionieren.

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

1voto

vvMINOvv Punkte 1700

Außerdem müssen Sie wahrscheinlich die von Ihnen verwendeten Schriftarten in Ihre Bibliothek aufnehmen

1voto

Yosra Nagati Punkte 730

Versuchen Sie, ein Textformat mit richtiger Ausrichtung hinzuzufügen.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X