اكشن اسكريپت - متغير ها در فلش :

متغير چيست ؟

يك متغير يك نگه دارنده اطلاعات است كه بخشي از حافظه را بنام خود ميكند تا شما بتوانيد داخلش مقدار هاي متفاوتي را بنويسيد و پاك كنيد . متغير خودش ثابت ميماند اما مقدار داخلش تغيير ميكند .براي نگه داشتن مقادير انجام شدن يك كار خاص يا گرفتن اطلاعات از كاربر ، اول اطلاعات به حافظه رم كامپيوتر منتقل ميشود كه اينجا متغير ها هستند كه نقش نگه داري اطلاعات را انجام ميدهند .

يك ايده خوب در بكار گيري متغير ها اينه كه همون اول كه متغير را تعريف ميكنيم يه مقدار اوليه بهش بديم . به اينكار ميگويند initialize كردن . اينكار را معمولا در فريم اول انجام ميدن .

متغير ها ميتوانند انواع مختلفي از اطلاعات را در خود نگه دارند مانند اعداد ، رشته ها ، مقادير بولين ، آبجكت ها يا مووي كليپ ها .

نام گذاري متغير ها :

نام يك متغير از قوانين زير پيروي ميكند :

  • بايد اسم آن نشان دهنده نوع آن باشد .
  • نام متغير نميتواند از بين 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;