السلام عليكم و رحمة الله و بركاته
مرحبا بكم في هذا الدرس الجديد من سلسلة دروس تعلم الاكشن سكربت 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 لانه غير موجود
____________________________________________________
الدرس القادم
فيديو
ليست هناك تعليقات:
إرسال تعليق