( تعداد نمایش : 1626 )

اکشن اسکریپت – متغیر ها در فلش

اکشن اسکریپت – متغیر ها در فلش :

متغیر چیست ؟

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

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

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

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

نام یک متغیر از قوانین زیر پیروی میکند :

  • باید اسم آن نشان دهنده نوع آن باشد .
  • نام متغیر نمیتواند از بین keyword های اکشن اسکریپت باشد . همچنین نمیتواند از کلمات تعیین کننده مانند true , false , null و undefiend باشد.
  • نام متغیر باید در محیط خودش یکتا باشد .

مقدار دهی متغیر :

در فلش نیازی نیست که نوع متغیر را در ابتدای کار تعیین کنید . فلش هنگامی که شما به آن مقدار میدهید نوع متغیرش را تعیین میکند.

X = 3 ;

در عبارت فوق ، فلش داده سمت راست مساوی را تعیین هویت میکند و میفهمد که نوع آن عدد است . یک مقدار دهی دیگر میتواند نوع x را عوض کند . مثلا x = “hello”; مقدار x را به نوع رشته ای تغییر میدهد . متغیری که هنوز هیچ داده ای به آن نداده ایم نوع undefiend دارد .

وقتی یک عبارت اکشن اسکریپت یک متغیر را با نوع داده ای خاصی طلب میکند ، اکشن اسکریپت بصورت اتوماتیک نوع آن را تغییر میدهد تا نوع داده ای مطلوب حاصل شود . بطور مثال وقتی شما مقداری را به دستور trace میدهید مقدارش به نوع داده رشته ای تغییر میکند و سپس آن را نمایش میدهد . در عبارت هایی که عملگر های ریاضی و مانند آن قرار دارند اکشن اسکریپت متغیر ها را به نوع داده ای مورد نیاز تبدیل میکند . مثلا در عبارت زیر ۷ یک عدد است که برای جمع با رشته تبذیل به رشته میشود .

“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 مقدار ۱۵ گرفته و سپس مقدارش در Y کپی شده . در خط سوم مقدار x مساوی با ۳۰ شده است . اما مقدار Y همان ۱۵ میماند . چون Y مقدارش را از X کپی گرفته و دیگر کاری به کار هم ندارند .

var x = 15;
var y = x;
var x = 30;

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن