یکشنبه, ۱۷ تیر, ۱۴۰۳ / 7 July, 2024
مجله ویستا

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


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

قلمرو یک متغیر به محدوده ای میگویند که آن متغیر در آن شناسایی میشود و میتوان به آن دسترسی داشت سه نوع قلمرو برای متغیرها در اکشن اسکریپت موجود است

● متغیر چیست ؟

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

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

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

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

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

▪ باید اسم آن نشان دهنده نوع آن باشد .

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

▪ نام متغیر باید در محیط خودش یکتا باشد .

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

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

X = ۳ ;

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

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

"Next in line, number " + ۷

پس از تبدیل جواب جمع رشته بصورت زیر در میاید :

"Next in line, number ۷"

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

کد زیر نوع متغیر را اعلام میکند

trace(typeof(نام متغیر));

● قلمرو یک متغیر :

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

▪ متغیر های local (محلی) : این متغیرهادر بلوک کد خودشان قابل دسترسی هستند (که بلوک کد آنها با آکولاد محصور میشود) .

▪ متغیر های Timeline : که در هر تایم لاینی که از Target path استفاده کنید قابل دسترسی هستند .

▪ متغیر های عمومی (global) : که در هر تایم لاینی قابل دسترسی است . حتی اگر از target path استفاده نکرده باشید .

برای اعلام کردن یک متغیر(declare) میتوانید از عبارت var استفاده کنید . بطور مثال متغیر های j و i معمولا برای استفالده در حلقه ها استفاده میشوند (البته هر اسمی میشه گذاشت ، فکر نکنی اسمش چیز خاصی داره ها .. اما خوب برنامه نویسا به یه سری اسامی عادت کردن دیگه) .

در کد زیر i به عنوان یک متغیر محلیبگار رفته که فقط در فانکشن makedays وجود دارد .

function makeDays() {

var i;

for( i = ۰; i < monthArray[month]; i++ ) {

_root.Days.attachMovie( "DayDisplay", i, i + ۲۰۰۰ );

_root.Days[i].num = i + ۱;

_root.Days[i]._x = column * _root.Days[i]._width;

_root.Days[i]._y = row * _root.Days[i]._height;

column = column + ۱;

if (column == ۷ ) {

column = ۰;

row = row + ۱;

}

}

}

● اعلام کردن یا مقدار دهی متغیر (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 = ۱۵;

var y = x;

var x = ۳۰;

نویسنده : حسین شرفی