السلام عليكم و رحمة الله و بركاته
مرحبا بكم في هذا الدرس الجديد من سلسلة دروس تعلم الاكشن سكربت 3 و سنعطي في هذا درس بعض الامثلة التطبيقية و التمارين
في الدرس السابق تكلمنا باختصار عن الجانب النظري للمتغيرات 
_____________________________________________________________________________
1.Affectation:  و نقصد بها  اخذ نفس قيمة متغير اخر مثلا
أي أن b  اخذ نفس قيمة المتغير a و التي هي 2 
بصفة عامة عندما نكتب
b= a;
تعني " سآخذ ما يوجد في المتغير a و اضعه في b"
__________________________________________________________________________
2.MAX_VALUE / MIN_VALUE: 
قبل اعطاء قيمة عددية للمتغير يجب التأكد من انها تنتمي الى مجال معين و للتعرف عليه نكتب الاتي
trace(int.MIN_VALUE); 
 trace(int.MAX_VALUE);
أنا يكتبلي
-2147483648
2147483647
اي كل متغير من نوع int يجب ان تكون قيمته تنتمي الى هذا المجال 
نفس الشئ بخصوص Number و uint
_________________________________________________________________________________
3.Casting:
في الدرس السابق عملنا ملاحظة لما يكون متغير من نوع Number (مثلا) و نعطيه قيمة من نوع اخر (String مثلا) يتشكل لنا رسالة خطأ
 الطريقة الصحيحة لتخلص من هذا المشكل هو
var myVar1: type = type(var_has_other_type);
 كمثال
var  a : int = 5;
var  b : String = "2";
a= int(b);
trace(a);
يكتب 2 :)
قام المترجم بتحويل "2" الى  2 اي من سلسلة حروف الى عدد طبيعي و اعطاها الى المتغير b 
مثال 2
var  a:int= int("as3arabic");
trace(a); 
 نحاول جعل هاته السلسة من الحروف عددا طبيعيا؟
الا ان هذا غير منطقي طبعا و النتيجة يكتب لنا NaN
فلهذا يجب الحذر من هذا النوع من الاخطاء فالمترجم لن يشكل رسالة خطأ و انما يعطي قيمة للمتغير ! (و هي NaN)
و عدم اكتشافها قد يسبب لكم في مشاكل و نتائج غير منتظرة
________________________________________________________________________________
4.العمليات الحسابية :
للقيام بعملية حسابية لعددين سنتبع نفس الطريقة التي تعلمناها في المدرسة :)
الجمع : +  
الطرح: -
الضرب: *
القسمة: /
باقي القسمة : %
 trace(5+1);
يكتب 6
trace(10%3);
يكتب 1 لان باقي قسمة 10 على 3 = 1
أمثلة
 مثال 1:
var integ:int  = 1+2;
var integ2:int = -10;
var result:Number = integ * integ2;
result = result / 3;
trace(result);
-سيكتب لنا 10
 الشرح
 var integ : uint = 1+2 سيأخذ قيمة 3
result  = integ * integ2  يـأخذ قيمة 3 * (10-) و هي 30-
result = result  / 3
يأخذ قيمة 10- لان
 (-30) / 3 = -10
 2مثال
var numb: Number = 3.5;
var numb2: Number = 1.2; 
var myInt : int = numb+numb2;   // سيتم تحويل العدد الحقيقي الى عدد طبيعي اوتوماتيكيا
trace(myInt);
يكتب   4 بالرغم ان numb+num2= 4.7
أي انه يظهر فقط الجزء الطبيعي للعدد الحقيقي
___________________________________________________________________________
5. سلسلة الحروف:
1.5.كما ذكرنا في الدرس السابقة فان سلسلة الحروف تكتب بين مزدوجتين لطباعة ما هو مكتوب تماما
trace("as3arabic");
يكتب as3arabic
و اذا لم نضع المزدوجتين؟؟
 trace(as3arabic);
سيظن المترجم ان هناك متغير اسمه as3arabic و اذا بحث عنه و لم يجده ستظهر رسالة الخطأ هذه 
1120: Access of undefined property startimes.
و في حالة ما اذا وجدها ؟ سيظهر قيمتها طبعا :) كما كنا نرى سابقا
_____________________________
2.5: 
اذا اردنا أن نظهر المزدوجتين في الشاشة مثل هذا  
hello "as3arabic "
هل هذا الكود صحيح؟؟
trace("hello"as3arabic "");
الجواب هو خطأ  لان مع نهاية كلمة " hello" المترجم سيعتبر ان سلسلة الحروف قد انتهت !
من اجل حل هذا المشكل هناك طريقتين و هما
trace("hello\"as3arabic \" ");
 أو
trace('Hello "as3arabic " ');
____________________________________
3.5 : concatenation
و نقصد بها إلصاق كلمتين لتصبح كلمة واحدة  و للقيام بهذا نستعمل ببساطة "+" أي نضيف كلمة لكلمة اخرى
trace("hello"+ " as3arabic " );
يكتب hello as3arabic أي اننا قمنا بالصاق كلمة hello مع as3arabic لتصبح كلمة واحدة تم طباعتها بواسطة الدالة trace
مثال
var first:String = "Hello ";
var sec:String = "as3arabic ";
var year:int= 2014;
trace(first +"!"+ sep + sec + year);
سيكتب لنا
Hello !as3arabic 2014
__________________________
4.5 بعض  الدوال و المتغيرات المهمة في سلاسل الحروف:
طول (أو عدد أحرف) سلسلة  length:
var hello:String= "Hello as3arabic ";
 trace(hello.length);
يكتب لنا  15 
تحويل الى حروف كبيرة او صغيرة:
var hello = "HeLLo As3aRaBiC";
trace(hello.toLowerCase());
trace(hello.toUpperCase());
الاولى ستقوم بتحويل كل الحروف الى احرف صغيرة 
 و الثانية الى احرف كبيرة 
__________________________
 البحث داخل سلسلة حروف(indexOf):
var ss:String = "hello";
trace(ss.indexOf("e"));
trace(ss.indexOf("a"));
1 الاولى ستظهر 1 و تعني ان الحرف موجود في المركز
0الترتيب يبدأ من
h: مركزها 0
e: 1
l:2
o:4
لأن سلسلة الأحرف يمكن التعامل معها كالجدول (سنرى هذا لاحقا) 
اما الثانية فالنتيجة -1 لانه غير موجود
____________________________________________________
الدرس القادم
فيديو




ليست هناك تعليقات:
إرسال تعليق