اكشن اسكريپت - متغير ها در فلش :
متغير چيست ؟
يك متغير يك نگه دارنده اطلاعات است كه بخشي از حافظه را بنام خود ميكند تا شما
بتوانيد داخلش مقدار هاي متفاوتي را بنويسيد و پاك كنيد . متغير خودش ثابت ميماند
اما مقدار داخلش تغيير ميكند .براي نگه داشتن مقادير انجام شدن يك كار خاص يا گرفتن
اطلاعات از كاربر ، اول اطلاعات به حافظه رم كامپيوتر منتقل ميشود كه اينجا متغير
ها هستند كه نقش نگه داري اطلاعات را انجام ميدهند .
يك ايده خوب در بكار گيري متغير ها اينه كه همون اول كه متغير را تعريف ميكنيم
يه مقدار اوليه بهش بديم . به اينكار ميگويند initialize كردن . اينكار را معمولا
در فريم اول انجام ميدن .
متغير ها ميتوانند انواع مختلفي از اطلاعات را در خود نگه دارند مانند اعداد ،
رشته ها ، مقادير بولين ، آبجكت ها يا مووي كليپ ها .
نام گذاري متغير ها :
نام يك متغير از قوانين زير پيروي ميكند :
بايد اسم آن نشان دهنده نوع آن باشد .
نام متغير نميتواند از بين keyword هاي اكشن اسكريپت باشد . همچنين نميتواند از
كلمات تعيين كننده مانند true , false , null و undefiend باشد.
نام متغير بايد در محيط خودش يكتا باشد .
نام گذاري متغير ها :
نام يك متغير از قوانين زير پيروي ميكند :
بايد اسم آن نشان دهنده نوع آن باشد .
نام متغير نميتواند از بين keyword هاي اكشن اسكريپت باشد . همچنين نميتواند از
كلمات تعيين كننده مانند true , false , null و undefiend باشد.
نام متغير بايد در محيط خودش يكتا باشد .
مقدار دهي متغير :
در فلش نيازي نيست كه نوع متغير را در ابتداي كار تعيين كنيد . فلش هنگامي كه
شما به آن مقدار ميدهيد نوع متغيرش را تعيين ميكند.
X = 3 ;
در عبارت فوق ، فلش داده سمت راست مساوي را تعيين هويت ميكند و ميفهمد كه نوع
آن عدد است . يك مقدار دهي ديگر ميتواند نوع x را عوض كند . مثلا x = “hello”;
مقدار x را به نوع رشته اي تغيير ميدهد . متغيري كه هنوز هيچ داده اي به آن نداده
ايم نوع undefiend دارد .
وقتي يك عبارت اكشن اسكريپت يك متغير را با نوع داده اي خاصي طلب ميكند ، اكشن
اسكريپت بصورت اتوماتيك نوع آن را تغيير ميدهد تا نوع داده اي مطلوب حاصل شود .
بطور مثال وقتي شما مقداري را به دستور trace ميدهيد مقدارش به نوع داده رشته اي
تغيير ميكند و سپس آن را نمايش ميدهد . در عبارت هايي كه عملگر هاي رياضي و مانند
آن قرار دارند اكشن اسكريپت متغير ها را به نوع داده اي مورد نياز تبديل ميكند
. مثلا در عبارت زير 7 يك عدد است كه براي جمع با رشته تبذيل به رشته ميشود .
"Next in line, number " + 7
پس از تبديل جواب جمع رشته بصورت زير در ميايد :
"Next in line, number 7"
وقتی شما اسکریپت هایتان را اشکال زدایی میکنید نگاهی به نوع متغیرها بیندازید.
کد زیر نوع متغیر را اعلام میکند
trace(typeof(نام متغير));
قلمرو يك متغير :
قلمرو يك متغير به محدوده اي ميگويند كه آن متغير در آن شناسايي ميشود و ميتوان
به آن دسترسي داشت . سه نوع قلمرو براي متغير ها در اكشن اسكريپت موجود است .
متغير هاي local (محلي) : اين متغيرهادر بلوك كد خودشان قابل دسترسي هستند (كه
بلوك كد آنها با آكولاد محصور ميشود) .
متغير هاي Timeline : كه در هر تايم لايني كه از Target path استفاده كنيد قابل
دسترسي هستند .
متغير هاي عمومي (global) : كه در هر تايم لايني قابل دسترسي است . حتي اگر از
target path استفاده نكرده باشيد .
براي اعلام كردن يك متغير(declare) ميتوانيد از عبارت var استفاده كنيد . بطور
مثال متغير هاي j و i معمولا براي استفالده در حلقه ها استفاده ميشوند (البته هر
اسمي ميشه گذاشت ، فكر نكني اسمش چيز خاصي داره ها .. اما خوب برنامه نويسا به
يه سري اسامي عادت كردن ديگه) .
در كد زير i به عنوان يك متغير محليبگار رفته كه فقط در فانكشن makedays وجود
دارد .
function makeDays() {
var i;
for( i = 0; i < monthArray[month]; i++ ) {
_root.Days.attachMovie( "DayDisplay", i, i + 2000 );
_root.Days[i].num = i + 1;
_root.Days[i]._x = column * _root.Days[i]._width;
_root.Days[i]._y = row * _root.Days[i]._height;
column = column + 1;
if (column == 7 ) {
column = 0;
row = row + 1;
}
}
}
اعلام كردن يا مقدار دهي متغير (declaration):
براي ديكلر كردن متغير هاي تايم لاين ، از اكشن set variable استفاده ميشود و
يا از عملگر مساوي . هر دو متد يك كار را انجام ميدهند .
براي ديكلر كردن متغير هاي محلي از عبارت var در داخل فانكشن ها استفاده ميشود
. يك متغير محلي در بلوك فانكشن محصور است و با رسيدن كد به خط پاياني فانكشن ،
متغير محلي (اصطلاحا) ميميرد . متغير محلي اي كه در داخل بلوك نباشد با رسيدن به
پايان اسكريپتش مي ميرد .
براي دكلر كردن متغير هاي عمومي (global ) از عبارت _global قبل از اسم متغير استفاده
ميشود. كدي كه مشاهده ميكنيد يك متغير عمومي بنام myname ميسازد :
_global.myName = "SHARAFI";
استفاده از يك متغير :
به مثال زير توجه كنيد :
getURL(myWebSite);
myWebSite = "http://www.macromediax.net";
اين كد دچار مشكل است و باعث ايجاد خطا در اسكريپت ميشود . چون در اين كد ابتدا
از يك متغير استفاده كرده ايم و بعد آن را مقدار داده ايم . پس مقدار دهي بايد
قبل از استفاده صورت گيرد .
يك مثال ديگر : در مثال زير x مقدار 15 گرفته و سپس مقدارش در Y كپي شده . در
خط سوم مقدار x مساوي با 30 شده است . اما مقدار Y همان 15 ميماند . چون Y مقدارش
را از X كپي گرفته و ديگر كاري به كار هم ندارند .
var x = 15;
var y = x;
var x = 30;
فلش سه نوع حلقه را در زبان اکشن اسکریپت جای داده است که هر کدام برای قصد خاصی
طراحی شده اند :
While : حلقه ای که شرطی در بالای حلقه دارد . اگر شرط درست باشد دستورات حلقه
اجرا میشند . اینکار تا زمانیکه شرط درست است ادامه پیدا میکند .
Do While : شرط در این حلقه بعد از دستورات میاد . یعنی حداقل یکبار دستورات حلقه
اجرا میشوند تا نوبت به شرط می رسد . حال اگر شرط برقرار بود دوباره دستورات اجرا
میشوند .
FOR : این نوع حلقه شرطش بصورت چک کردن یک عدد است . م برای تکرار حلقه به تعداد
معین باید ازین حلقه کمک گرفت .
اجرای حلقه While :
While(شرط ){
//دستورات //
}
اجرای حلقه Do While :
Do{
//دستورات //
}while( شرط );
اجرای حلقه FOR :
for(i=0 ; i<=5 ; i++){
//دستورات //
}
دراین جلقه در ابتدا i=0 است و هر بار با کد i++ یک واحد اضافه میشد و شطر ایستادن
حلقه این است که i<=5 باشد .
|