چند نکته در باره Variable یا متغییر ها

CMAX

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


variable یا همون متغییر در فلش خیلی ساختار پیچیده و سخت گیرانه ای رو نداره و در هر جای Time line و
در هر MC شما هر چی نوشتین با یه علامت مساوی فلش به عنوان متغییر و بعضی وقتها Object در نظر می گیره اما نکته اینجاست که چطور به اینا دست رسی پیدا کنیم

تعریف متغیر
برای تعریف متغییر حتما از " var " کنید
زمانی که متغییری بدون تعیین مقدار اولیه تعریف شود مقدار آن undefined خواهد بود و برای فلش این عبارت
با "false" برابر است .
کد:
var name;
در صورتی که نوع data مشخص نشود در زمان Compile فلش سعی می کند از روی نوع data سمت راست
نوع اطلاعات متغییر را حدس بزند . سعی کنید حتما نوع متغییر را همان ابتدا تعریف کنید
کد:
var name:String="CMAX"
در این صورت امکان استفاده از Hint یا code completion فلش خواهد بود و درصد اشتباه در برنامه نویسی رو
پایین خواهد آورد .

متغیر Local
زمانی که شما متغییری رو در خود Time Line و در Root تعریف کنید این متغییر در هر کجای Time Line و در خود
Root قابل دسترسی است و همینطور در داخل یک MC هم متغییری که در Time Line تعریف شده در داخل اون
MC و با فراخوانی نامش قابل دست رسی ست
اما در صورتی که بخواهید از یک MC تغییری را در Root فرا بخوانید و بلعکس باید نام Local را به Compiler فلش
بدهیم دقیقا مثل زمانی کهبه MC های درون یک MC با دادن نام MC مادر و یا Local دسترسی پیدا می کنیم

تعریق متغییر در Root
کد:
var city:String ="Shiraz"
فراخوانی از MC
کد:
trace (_root.city)
و یا تعریف درMC و فراخوانی از Root
کد:
trace (MC.city)

متغییر Global
"global property_" خاصیتی است که شما به یک متغییر می دهید و امکان دستیابی به آن را در همه نقاط SWF
خواهید داشت مثلا
کد:
_global.Kent=true
کد:
_global.Tea=_root.Coffee
برای تعریف متغییر Global از عبارت var نباید استفاده کنید در صورت استفاده با Syntax error مواجه خواهید شد .
این متغییر در هر جایی به همین صورت قابل دست رسی است مثلا در داخل یک MC
کد:
  if (_global.Kent)
{
	trace("May Be Some Other Time");
}

خاصیت global_ تنها برای متغیر نیست و برای تابع و Object و Array و غیره قابل استفاده است
مثلا

کد:
_global.getSeason = function(n:Number)
{
	if (n == 8)
	{
		return ("Worst Season");
	}
	else if (n>8)
	{
		return ("Lovely Season");
	}
	else
	{
		return ("Busy Season");
	}
};


حالا اینجوری هرکجا که خواستید فراخوانی کنید

کد:
trace (getSeason(8))







نکته : در صورت امکان از این خاصیت کم تر استفاده کنید و از همان تعرف Local استفاده کنید

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

آخرش اینکه من عاشق این Trace ام !


Take Care
 
آخرین ویرایش:

maxpal97

Active Member
حقیقتا تشکر . بعد از مدت ها ..... عجیبه که کسی داره آموزش میده
 

shirini_forush

Well-Known Member
مطالب خوبی بود.
مکس پال جون آموزش فرصت می خواد.
بیشتر بروبچ مجید آنلاین دانشجو های عزیز و دانش آموزان گرامی هستن. ولی اگه سوالی بپرسید فکر نکنم بی جواب بمونه.
 

جدیدترین ارسال ها

بالا