المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : جولة حول أكشن سكريبت 3 التعامل مع النصوص جزء 2


azizsoft
20-09-2013, 08:36 PM
بسم الله الرحمن الرحيم
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته





قلنا أن لغة اكشن سكريبت 3 توفر ثلاثة تقنيات للتعامل مع تنسيقات النصوص Text Formatting وهي على النحو التالي:

htmlText
flash.text.TextFormat
flash.text.StyleSheet



htmlText : تتيح لنا هاته الخاصية استغلال أوسمة html والتي تعرف بـــ HTML tags المثال أسفله سيوضح الأمر



var monTexte:TextField = new TextField();
monTexte.autoSize = TextFieldAutoSize.LEFT;
monTexte.text = "هذا نص عادي";
addChild ( monTexte );


لاحظ هنا الخاصية text. مشغل الفلاش يرجع قيمة سالبة بدون اي معلومات لتنسيق النص
عكس ذلك اذا اضفنا الخاصية htmlText يرجع مشغل الفلاش قيمة النص مع مكتبة " تاقات
الهشتمل" HTMLTags ان شاء الله وصلت الفكرة عموما اليك المثال التوضيحي

افتح برنامج الفلاش حدد الطبقة الأولى اضغظ F9 الصق الكود التالي واضغط Ctrl+ Enter


var monTexte:TextField = new TextField();
monTexte.autoSize = TextFieldAutoSize.LEFT;
monTexte.text = " HTML السلام عليكم ورحمة الله وبركاته هذا نص بصيغة ";
addChild ( monTexte );
trace( monTexte.text );


اغلق الملف عدد للكود غير السطر الأخير من الكود بالسطر التالي


trace( monTexte.htmlText );


اذن نلاحظ أنه عند استغلال الخاصية htmlText تمكننا من تحكم وتنسيق اكثر بالنصوص من خلال تاقات الهشتمل HTML Tags

مثال يمكن تغيير اللون باضافة الخاصية textColor

تحت السطر الأول من الكود السابق اضف الكود التالي :

monTexte.textColor = 0x990000;



اذن نستخلص أنه بامكاننا ادراج محتوى نصي بصيغة HTML عبر مختلف خصائص الكلاس TextField
وذلك باستغلال الخاصية htmlText لاحظ الكود التالي :


var monTexte:TextField = new TextField();
monTexte.autoSize = TextFieldAutoSize.LEFT;
monTexte.textColor = 0x990000;
monTexte.htmlText = "abc4web. <b>net</b>";
addChild ( monTexte );


بعد المعاينة غير الان كامل السطر قبل الأخير بالكود التالي :


monTexte.htmlText = "abc4 <font color='#FF0000'>web.</font> <b>net</b>";



هل لاحظت أخي الكريم أننا نستطيع تفيير خصائص النص أو الكلمات من خلال اضافة لون معين أو حجم .... الخ ...

ملاحظة :

خاصية html في كلاس TextField لاتوجد اطلاقا في ActionScript 3 بل انه بمجرد الاعلان عن خاصية
htmlText نقدر نستغل كل تاقات الهشتمل HTML Tags التي يدعمها البرنامج


classe TextFormat

هذا الكلاس يحتوي على خصائص عديدة تساعد على تحكم أكثر بالنصوص وطبعا لامكانية استغلاله يجب
كخطوة أولى إنشاء الكائن TextFormat ثم نتولى بعد ذلك تحديد خصائص التنسيق نوضح الأمر بالكود


var monTexte:TextField = new TextField();
monTexte.autoSize = TextFieldAutoSize.LEFT;
monTexte.text = "abc4web.net/vb";
addChild ( monTexte );
// انشاء نسخة من كلاس TextFormat وحفظه في متغير باسم miseEnForme
var miseEnForme:TextFormat = new TextFormat();
// استدعاء خاصية سماكة الخظ
miseEnForme.bold = true;
//تغيير حجم الخط
miseEnForme.size = 25;
//تغيير نوع الكتابة
miseEnForme.font = "Verdana";
// أمر تطبيق التنسيقات الجديدة
monTexte.setTextFormat( miseEnForme );


لاحظ اخي الكريم أنه يمكن ايضا تطبيق التنسيقات على كلمة وسطة جملة نريد مثلا تكبير كلمة Web فقط
غير السطر الأخير بالسطر التالي :


monTexte.setTextFormat( miseEnForme, 4, 7);


يعني هنا برنامج الفلاش يحسب الحروف كلها وقيمة 4 هي بداية الاندكس و7 هي نهاية الاندكس
غير مثلا 4 الى 3 و7 الى 6 وعاين وستفهم النتيجة


classe StyleSheet


هاته الطريقة متقدمة نوعا باعتبار أنه يجب تجهيز مستند خارجي باكواد css وتحفظ بهذا الامتداد ويتم استدعاءها في برنامج
الفلاش عن طريق URLLoader وبالتالي استغلال كامل ميزات css وما تحتويه من مؤثرات جمالية على النصوص ويمكن ايضا
التعامل مباشرة مع هاته الخصائص عن طريق الاكشن سكريبت ولاحظ الطريقة في الجزء الثالث من الموضوع .



نواصل غدا ان شاء الله الجزء الثالث


استودعكم الله

خادم المسلمين
20-09-2013, 09:00 PM
رووعة الشرح وطبقت أولا بأول مع الاكواد
ولكن يا ريت توضح لنا ايه فائدة ادخال الاكشن سكربت للنصوص
فيما يخص المستخدم البسيط للفلاش
الخصائص دى موجودة فى البرنامج نفسه وبمنتهى السهولة نتحصل عليها وبدون أكواد
فما الميزة فى ادخال الاكشن سكربت للنصوص؟

azizsoft
20-09-2013, 10:49 PM
رووعة الشرح وطبقت أولا بأول مع الاكواد
ولكن يا ريت توضح لنا ايه فائدة ادخال الاكشن سكربت للنصوص
فيما يخص المستخدم البسيط للفلاش
الخصائص دى موجودة فى البرنامج نفسه وبمنتهى السهولة نتحصل عليها وبدون أكواد
فما الميزة فى ادخال الاكشن سكربت للنصوص؟



مرحبا يا طيب

طبعا فيه فائدة كبيرة لان لغة الاكشن سكريبت هي تخول لك أن يتفاعل المستخدم مع الماوس
يعني تبرز له فقرة تبرز له نص يتغير النص تتغير الاجابة الخ ... يعني استخدامات كبيرة جدا

مثال لما انت تكتب نص يدويا في الفلاش وتربطه بز هل يقدر مثلا يصبح فقرة منسقة بها معلومات
أو ترفق به صورة وما الى ذلك طبعا لا لكن بالاكشن تتحكم جيدا في ابراز النصوص

نوضح افتح برناج الفلاش في الطبقة الأولى ارسم زر وحوله الى button واعطه اسم btn1
اضف طبقة ثانية للاكشن اضفط f9 والصق الكود التالي


function showtext()

{
var monTexte:TextField = new TextField();
monTexte.border = true;
monTexte.text = " اخي الكريم يجب الانتباه جيدا الى الدرس ";
monTexte.width = 250;
monTexte.height = 30;
monTexte.x = 150;
monTexte.y = 200;
monTexte.wordWrap = true;
addChild ( monTexte );
var miseEnForme:TextFormat = new TextFormat();
miseEnForme.bold = true;
miseEnForme.size = 18;
miseEnForme.font = "Arial";
monTexte.setTextFormat( miseEnForme );
}

btn1.addEventListener (MouseEvent.CLICK, onClick);

function onClick(event:MouseEvent):void

{
showtext()
}


هذا مثال بسيط جدا لكن امكانيات الاكشن مع النصوص وتأثيراتها كبيرة جدا جدا يا طيب

خادم المسلمين
20-09-2013, 11:08 PM
مرحبا يا طيب

طبعا فيه فائدة كبيرة لان لغة الاكشن سكريبت هي تخول لك أن يتفاعل المستخدم مع الماوس
يعني تبرز له فقرة تبرز له نص يتغير النص تتغير الاجابة الخ ... يعني استخدامات كبيرة جدا

مثال لما انت تكتب نص يدويا في الفلاش وتربطه بز هل يقدر مثلا يصبح فقرة منسقة بها معلومات
أو ترفق به صورة وما الى ذلك طبعا لا لكن بالاكشن تتحكم جيدا في ابراز النصوص

نوضح افتح برناج الفلاش في الطبقة الأولى ارسم زر وحوله الى button واعطه اسم btn1
اضف طبقة ثانية للاكشن اضفط f9 والصق الكود التالي


function showtext()

{
var montexte:textfield = new textfield();
montexte.border = true;
montexte.text = " اخي الكريم يجب الانتباه جيدا الى الدرس ";
montexte.width = 250;
montexte.height = 30;
montexte.x = 150;
montexte.y = 200;
montexte.wordwrap = true;
addchild ( montexte );
var miseenforme:textformat = new textformat();
miseenforme.bold = true;
miseenforme.size = 18;
miseenforme.font = "arial";
montexte.settextformat( miseenforme );
}

btn1.addeventlistener (mouseevent.click, onclick);

function onclick(event:mouseevent):void

{
showtext()
}


هذا مثال بسيط جدا لكن امكانيات الاكشن مع النصوص وتأثيراتها كبيرة جدا جدا يا طيب

سكربت رائع فعلا وكدة تتضح اهمية وجدوى دراسة الاكشن سكربت فى النصوص
طيب

لو حبيت كلما ضغط على الزر نفسه يولد سؤلا او جملة جديدة؟
هنزود ايه على السكربت تانى ؟
هل يلزم عمل مصفوفة أم ان هناك حل برمجى أخر؟

azizsoft
21-09-2013, 12:35 AM
بسم الله الرحمن الرحيم

ياباشا هذا مثال بسيط لاضهار نص او فقرة
توليد الاسئلة يكون بطريقة اخرى عبر مصفوفة مثلا
سنجهز لها شرح خاص ان شاء الله

بالتوفيق

abohmam
21-09-2013, 12:32 PM
:teslam_2:

جزاك الله خيرا أخانا عزيز

دروس رائعة ماشاء الله

بارك الله في جهودك

أبو يوسف
21-09-2013, 01:40 PM
بارك الله فيك اخانا عزيز على هذه الجولات والتي ستنتهي بالإحتراف إن شاء الله

.

azizsoft
25-09-2013, 03:14 PM
بسم الله الرحمن الرحيم

بارك الله فيكم اخوتي أبو يوسف وأبو همام

نورتم بحضوركم الكريم

وفقكم الله

خادم المسلمين
25-01-2018, 01:05 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .