vendredi 12 septembre 2014

[ دورة تعلم لغة أكشن سكربت 3 FLASH] -جزء1- الدرس 2.2 المتغيرات_تطبيق


 
 

السلام عليكم و رحمة الله و بركاته
مرحبا بكم في هذا الدرس الجديد من سلسلة دروس تعلم الاكشن سكربت 3 و سنعطي في هذا درس بعض الامثلة التطبيقية و التمارين

 
في الدرس السابق تكلمنا باختصار عن الجانب النظري للمتغيرات 
 
في هذا الدرس ان شاء سيكون تطبيق لما تعلمناه سابقا
 
 
 
 
 
 
 
1.Affectation:  و نقصد بها  اخذ نفس قيمة متغير اخر مثلا

var a:int = 2; 
varb:int = 5; 
 b= a ;
 trace(b);
 

سيكتب 2
أي أن 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 مثلا) يتشكل لنا رسالة خطأ
 الطريقة الصحيحة لتخلص من هذا المشكل هو
 
varmyVar1:Type=type(var_has_other_type);
 
 كمثال

vara:int = 5;
varb:String = "2";
a=int(b);
trace(a);
 

يكتب 2 :)
 
قام المترجم بتحويل "2" الى  2 اي من سلسلة حروف الى عدد طبيعي و اعطاها الى المتغير b 
 
مثال 2

var  a:int= int("cerine_dz");
trace(a); 
 

 نحاول جعل هاته السلسة من الحروف عددا طبيعيا؟
 
الا ان هذا غير منطقي طبعا و النتيجة يكتب لناNaN
 
فلهذا يجب الحذر من هذا النوع من الاخطاء فالمترجم لن يشكل رسالة خطأ و انما يعطي قيمة للمتغير ! (و هي NaN)
و عدم اكتشافها قد يسبب لكم في مشاكل و نتائج غير منتظرة

 
 
 
 
4.العمليات الحسابية :
 
للقيام بعملية حسابية لعددين سنتبع نفس الطريقة التي تعلمناها في المدرسة :)

الجمع : +  
الطرح: -
الضرب: *
القسمة: /
باقي القسمة : %
 
 trace(5+1);
يكتب 6
 
trace(10%3);
يكتب 1 لان باقي قسمة 10 على 3 = 1 
 
 
أمثلة

 مثال 1:

var integ:= 1+2;
 var integ2:int = -10;
var result:Number = integ * integ2;
result = result / 3;
trace(result);
 
سيكتب لنا -10
 الشرح
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("startimes");
 
يكتب startimes
 
و اذا لم نضع المزدوجتين؟؟
 trace(startimes);

سيظن المترجم ان هناك متغير اسمه startimes و اذا بحث عنه و لم يجده ستظهر رسالة الخطأ هذه 
1120: Access of undefined property startimes.
 
و في حالة ما اذا وجدها ؟ سيظهر قيمتها طبعا :) كما كنا نرى سابقا
 
_____________________________
 
2.5: 
اذا اردنا أن نظهر المزدوجتين في الشاشة مثل هذا  
hello "startimes"
 
هل هذا الكود صحيح؟؟
trace("hello"startimes"");
 
الجواب هو خطأ  لان مع نهاية كلمة " hello" المترجم سيعبر ان سلسلة الحروف قد انتهت !
من اجل حل هذا المشكل هناك طريقتين و هما

trace("hello\"startimes\" ");
 or
trace('Hello "startimes" ');
 
 
____________________________________
 

3.5 : concatenation
 
و نقصد بها الصاق كلمتين لتصبح كلمة واحدة  و للقيام بهذا نستعمل ببساطة "+" و كأننا نضيف الكلمة لكلمة اخرى
trace("hello"+ " startimes" );
 
يكتب hello startimes أي اننا قمنا بالصاق كلمة hello مع startimes لتصبح كلمة واحدة تم طباعتها بواسطة الدالة trace
 
مثال
var first:String = "Hello ";
var sec:String = "Startimes ";
var year:int= 2014;
 
trace(first +"!"+ sep + sec + year);
 
سيكتب لنا
Hello !Startimes 2014
 
 
__________________________
 

4.5 بعض  الدوال و المتغيرات المهمة في سلاسل الحروف:
 
طول (أو عدد أحرف) سلسلة:  length
 
var hello:String= "Hello startimes";
 trace(hello.length);

يكتب لنا  15 
 
تحويل الى حروف كبيرة او صغيرة:

var hello = "HeLLo StArTiMeS";
trace(hello.toLowerCase());
trace(hello.toUpperCase());
 
الاولى ستقوم بتحويل كل الحروف الى احرف صغيرة 
 و الثانية الى احرف كبيرة 
 
 
____________________________
 

 البحث داخل سلسلة حروف:

 
var ss:String = "hello";
trace(ss.indexOf("e"));
trace(ss.indexOf("a"));
 
1 الاولى ستظهر 1 و تعني ان الحرف موجود في المركز
0الترتيب يبدأ من
h: مركزها 0
e: 1
l:2
o:4
 
لأن سلسلة الأحرف يمكن التعامل معها كالجدول (سنرى هذا لاحقا) 
اما الثانية فالنتيجة -1 لانه غير موجود
 
 
 
سأكتفي بهذا لان هذا الموضوع فعلا كبير المهم ان نتعلم الاساسيات اما التعمق اكثر فهذا يتطلب مجهوداتكم انتم ايضا و لكن سيكون سهلا جدا ان شاء الله بعد فهم هذه السلسلة
 
 
لكن من لديه أسئلة فليطرحها

0 commentaires:

Enregistrer un commentaire

Fourni par Blogger.