الاثنين، 8 سبتمبر 2014

تعلم AS3 -جزء1- الدرس 2.2 [المتغيرات_تطبيق]




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

في الدرس السابق تكلمنا باختصار عن الجانب النظري للمتغيرات 


 في هذا الدرس ان شاء سيكون تطبيق لما تعلمناه سابقا



_____________________________________________________________________________


1.Affectation:  و نقصد بها  اخذ نفس قيمة متغير اخر مثلا



قم بكتابة هذا الكود ثم اضعط على CTRL + Enter  أو control -> Test Scene لتجريبة

و النتيجة 


أي أن 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 لانه غير موجود

____________________________________________________


الدرس القادم



فيديو


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

إرسال تعليق


جميع الحقوق محفوظة لمدونة 2014-2015 as3arabic |