FlarabyAS3 Demo

In the name of Allah the compassionate the most mercifull  Who is Allah ?
May peace and Allah mercy and blessings be upon you

FlarabyAS3Example

Get Adobe Flash player

I used MinimalComps Components by bit-101 in this demo.

Source Code

package
{
  import flash.display.Sprite;
  import flash.events.Event;
  import flash.events.MouseEvent;
  import flash.text.Font;
  import flash.text.TextField;
  import flash.text.TextFormat;
  import flash.text.TextFormatAlign;
  
  import com.arabicode.text.Flaraby.*;
  import com.bit101.components.CheckBox;
  import com.bit101.components.NumericStepper;
  import com.bit101.components.Style;
  import com.bit101.components.Label;
  /**
   * …
   * @author Ahmad Adel Eldardiry
   */
  
  public class Main extends Sprite
  {
    private var frm:TextFormat;
    private var tf:TextField;
    private var fb:FlarabyAS3;
    private var str:String = “<a href=’http://www.arabicode.com/flarabyas3/main’><u><font color=’#0000ff’>فلارابي FlarabyAS3</font></u></a> هو مكون أكشن سكريبت نقي (يعمل على Adobe Flash و Adobe Flex و Adobe Air) يمكن من الإظهار الصحيح للنص العربي ثنائي الإتجاه (العربية مع لغات مثل الإنجليزية و الفرنسية والإيطالية) في ملفات الـ SWF في وقت التشغيل. FlarabyAS3 يعمل على مشغل الفلاش إصدار رقم 10 وما يليه. FlarabyAS3 يدعم خواص مثل embedFonts, multiline ويدعم بشكل محدود HTML Tags (anchor و font color و underline). FlarabyAS3 هو أقل من 13k في الحجم مما يجعله أخف وأسهل بكثير من محرك النصوص TextLayout Components الذي أدمجته Adobe في السنوات الأخيرة، وذلك يجعله أكثر ملاءمة <u>للتطوير على الجوالات</u>.”;
    private var sz:NumericStepper;
    private var xr:NumericStepper;
    
    [Embed(source = "../fonts/tradbdo.ttf", fontName = "FF", embedAsCFF = "false", mimeType = "application/x-font")]
    private static var font:Class;

    public function Main():void
    {
      if (stage) init();
      else addEventListener(Event.ADDED_TO_STAGE, init);
    }

    private function init(e:Event = null):void
    {
      removeEventListener(Event.ADDED_TO_STAGE, init);
      //
      tf = new TextField();
      tf.background = true;
      tf.backgroundColor = 0xffffff;
      tf.border = true;
      tf.borderColor = 0×000000;
      tf.embedFonts = true;
      //tf.defaultTextFormat = frm;
      tf.antiAliasType = “advanced”;
      tf.multiline = true;
      tf.wordWrap = false;
      tf.width = 620;
      tf.height = 200;
      tf.x = 10;
      tf.y = 10;
      //
      addChild(tf);
      //
      Style.setStyle(Style.DARK);
      //
      var bg:CheckBox = new CheckBox(this, tf.x, tf.y + tf.height + 10, “Toggle Border & Background”, onToggleBg);
      bg.selected = true;
      sz = new NumericStepper(this, 0, tf.y + tf.height + 10, onSZStep);
      sz.minimum = 10;
      sz.maximum = 18;
      sz.step = 1;
      sz.value = 15;
      sz.x = tf.x + tf.width – sz.width;
      var szlb:Label = new Label(this, sz.x, sz.y, “Font Size”);
      szlb.x = sz.x – szlb.width – 5;
      //
      frm = new TextFormat();
      frm.align = TextFormatAlign.RIGHT;
      frm.font = “FF”;
      frm.size = sz.value;
      //
      fb = new FlarabyAS3();
      fb.dir = “RTL”;
      fb.embedFonts = true;
      fb.html = true;
      fb.multiline = true;
      fb.extraCharWidth = 0.9;
      //
      tf.defaultTextFormat = frm;
      tf.htmlText = fb.convertArabicString(str, tf.width – 10, frm);
    }
    
    private function onToggleBg(e:MouseEvent):void
    {
      tf.background = tf.border = e.currentTarget.selected;
    }
    
    private function onSZStep(e:Event):void
    {
      frm.align = TextFormatAlign.RIGHT;
      frm.size = sz.value;
      fb.extraCharWidth = sz.value * 0.001;
      tf.defaultTextFormat = frm;
      tf.htmlText = fb.convertArabicString(str, tf.width – 10, frm);
    }
  }
}