X
تبلیغات
نماشا
رایتل
آموزش اکشن اسکریپت در فلش ام ایکس

اکشن اسکریپت - تعریف  متغیر ها در نرم افزار فلش mx

متغیر چیست ؟

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

یک ایده خوب در بکار گیری متغیر ها اینه که همون اول که متغیر را تعریف میکنیم یه مقدار اولیه بهش بدیم . به اینکار میگویند 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;