هذه التقنية ظهرت بقوة وثبات من الإصدار flash cs5و flash builder 4 وهى خاصة بالكتابة text داخل ملفات الفلاش وهى تحتاج flash player 10 مشغل الفلاش إصدار 10 ولها ميزات كثيره وأهمها بالنسبة لنا العرب الكتابة باللغه العربية فى الفلاش وهذه الميزه لم تكن متوفرة الا ببعض الإحتيالات حول الكتابة .
أما نظام الكتابة القديم فكان يستخدم مايسمى Classic Text والحديث يسمى إختصارا TLF Text .
Classic Text : ينشأ بإستخدام فئة TextField والتعديل علية بفئة TextFormat .
TLF Text: ينشأ بإستخدام فئة TLFTextField والتعديل فئة TextLayoutFormat ولكن فى بعض الحالاات المعقدة يتم فصل محتويات النص وتنسيقاته والشكل الخارجى له والتحكم فيه الى فئات مختلفه مثل TextFlow,ContainerController, TextConverter,و SpanElement.
لإنشاء TLF Text :
- الطريقة البسيطه
1- بإنشاء نص بإستخدام فئة TLFTextField وإضافتها الى منصة العمل Stage
2- تخصيص محتويات النص بخاصية Text
يتم التحكم فى النص من خلال فئه أخرى تسمى TextFlow ولتنسيق النص نضع محتويات النص فى كائن TextFlow وتخصص TextLayoutFormat لتنسيق لخاصية format لكائن TextFlow مثل التالى
أما نظام الكتابة القديم فكان يستخدم مايسمى Classic Text والحديث يسمى إختصارا TLF Text .
Classic Text : ينشأ بإستخدام فئة TextField والتعديل علية بفئة TextFormat .
TLF Text: ينشأ بإستخدام فئة TLFTextField والتعديل فئة TextLayoutFormat ولكن فى بعض الحالاات المعقدة يتم فصل محتويات النص وتنسيقاته والشكل الخارجى له والتحكم فيه الى فئات مختلفه مثل TextFlow,ContainerController, TextConverter,و SpanElement.
لإنشاء TLF Text :
- الطريقة البسيطه
1- بإنشاء نص بإستخدام فئة TLFTextField وإضافتها الى منصة العمل Stage
2- تخصيص محتويات النص بخاصية Text
ActionScript 3
var mytextfield:TLFTextField = new TLFTextField();
stage.addChild(mytextfield);
mytextfield.text = "hello world";
شكرا
يتم التحكم فى النص من خلال فئه أخرى تسمى TextFlow ولتنسيق النص نضع محتويات النص فى كائن TextFlow وتخصص TextLayoutFormat لتنسيق لخاصية format لكائن TextFlow مثل التالى
ActionScript 3
var mytextflow:TextFlow = new TextFlow();
mytextflow = mytextfield.textFlow;
var myformat:TextLayoutFormat = new TextLayoutFormat();
myformat.fontSize = 14;
mytextflow.format = myformat;
شكرا
وفى النهاية يجب إستدعاء الوظيفة ()updateAllControllers لكى تنفذ التنسيقات
mytextflow.flowComposer.updateAllControllers();
الخطوات بتفصيل أكثر
1- إبدأ بأمر Import الخاص بفئة TLFTextField
2- إنشاء نسخة من TLFTextField بإسم mytextfield
3- إضافه النسخة الى Stage4- تخصيص الكتابة لخاصية الكتابة Text
5-11 تغيير الخواص الأخرى لتغيير الشكل مثل Width العرض وheight الإرتفاع و multiline على أكثر من سطر وwordwrap تكملة فى السطر التالى , columnCount عدد الأعمدة و columnGap المسافة بين الأعمدة و direction = “rt” لتحديد انجاه الكتابة من اليمين لليسار rtl
ActionScript 3import fl.text.TLFTextField;var mytextfield:TLFTextField = new TLFTextField();stage.addChild(mytextfield);mytextfield.text = "ما يصيب المسلم من نصب،ولا وصب، ولا هم، ولا حزن، ولا أذى، ولا غم، حتى الشوكة يشاكها إلا كفر الله بها من خطاياه";mytextfield.width = 200;mytextfield.height = 50;mytextfield.multiline = true;mytextfield.wordWrap = true;mytextfield.columnCount=2;mytextfield.columnGap = 20;mytextfield.direction = "rtl";"شكرا”
تنسيق TLF text
وذلك بالأوامر الجديدة “المظلل”
- نستخدم أمر import لجلب أكواد فئات TextLayoutFormat و TextFlow.
- عمل نسخة جديدة من الكائن TextLayoutFormat وتخصيص له التنسيقات الجديدة مثل textIndent “المسافة البادئة للنص” و color “اللون” و fontFamily “نوع الخط”و fontSize “حجم الخط”
الأن TextLayoutFormat يحتوى على جميع التنسيقات الجديدة
ملاحظة : لو تم تنفيذ هذا الكود لن تلاحظ جديد حيث لن تدخل هذه التعديلات حيز التنفيذ الا بعد إنشاء كائن TextFlow وتخصيص TextLayoutFormat لهذا الكائن وتللك الخطوة التالية.
ActionScript 3import fl.text.TLFTextField;import flashx.textLayout.formats.TextLayoutFormat; import flashx.textLayout.elements.TextFlow;var mytextfield:TLFTextField = new TLFTextField(); stage.addChild(mytextfield); mytextfield.text = "ما يصيب المسلم من نصب،ولا وصب، ولا هم، ولا حزن، ولا أذى، ولا غم، حتى الشوكة يشاكها إلا كفر الله بها من خطاياه"; mytextfield.width = 200; mytextfield.height = 50; mytextfield.multiline = true; mytextfield.wordWrap = true; mytextfield.columnCount=2; mytextfield.columnGap = 20; mytextfield.direction = "rtl";var myformat:TextLayoutFormat = new TextLayoutFormat(); myformat.textIndent = 0; myformat.color = 0x336633; myformat.fontFamily ="arial"; myformat.fontSize = 12;“شكرا”
إنشاء الكائن TextFlow
- ننشئ نسخة من الكائن TextFlow بإسم mytextflow
- نخصص خاصية textFlow للكائن TLFTextField الى الكائن TextFlow الجديد المسمى mytextflow
- نخصص الكائن TextLayoutFormat المسمى myformat لخاصية format للكائن TextFlow المسمى mytextflow
- وفى النهاية يتم إستدعاء الوسيلة أو الطريقة updateAllControllers لل flowComposer للكائن TextFlow
والجزء المظلل هو الكود المضاف للخطوات السابقة
ActionScript 3import fl.text.TLFTextField;import flashx.textLayout.formats.TextLayoutFormat; import flashx.textLayout.elements.TextFlow;var mytextfield:TLFTextField = new TLFTextField();stage.addChild(mytextfield); mytextfield.text = ""; mytextfield.width = 200; mytextfield.height = 50; mytextfield.multiline = true; mytextfield.wordWrap = true; mytextfield.columnCount=2; mytextfield.columnGap = 20; mytextfield.direction = "rtl";var myformat:TextLayoutFormat = new TextLayoutFormat(); myformat.textIndent = 0; myformat.color = 0x336633; myformat.fontFamily ="arial"; myformat.fontSize = 12;var mytextflow:TextFlow = new TextFlow(); mytextflow = mytextfield.textFlow; mytextflow.format = myformat;mytextflow.flowComposer.updateAllControllers();"شكرا"
حاول أن تغير القيم للخواص ل mytextfield و myformat
والى لقاء فى البقية
ليست هناك تعليقات:
إرسال تعليق