تبلیغات
بهترین اطلاعات کامپیوتری
 

اكشن اسكریپت - متغیر ها در فلش | ActionScript , | علی فیروزجنگ

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

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

متغیر چیست ؟

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

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

 

این كد دچار مشكل است و باعث ایجاد خطا در اسكریپت میشود . چون در این كد ابتدا از یك متغیر استفاده كرده ایم و بعد آن را مقدار داده ایم . پس مقدار دهی باید قبل از استفاده صورت گیرد .

 

یك مثال دیگر : در مثال زیر  x  مقدار 15 گرفته و سپس مقدارش در Y كپی شده . در خط سوم مقدار x  مساوی با 30 شده است  . اما مقدار Y همان 15 میماند . چون Y  مقدارش را از X كپی گرفته و دیگر كاری به كار هم ندارند .

var x = 15;

var y = x;

var x = 30;

 


تاریخ ثبت : یکشنبه 27 شهریور 1384 ساعت : 02:09 ق.ظ
اكشن اسكریپت : متغیر های رشته ای ، عددی و بولین و نال | ActionScript , | علی فیروزجنگ

اكشن اسكریپت : متغیر های رشته ای ، عددی و بولین و نال

رشته چیست ؟

رشته مجموعه ای از كاراكتر هاست كه در كنار هم قرار گرفته اند و میتواند شامل حروف و اعداد و كاراكتر های نقطه گذاری باشند . برای نوشتن رشته ها باید آنها را در میان كوتیشن قرار داد. مثلا : “Mediax”

شما میتوانید از عملگر + جهت متصل كردن دو رشته به هم استفاده كنید . اكشن اسكریپت فاصله ها را در ابتدا یا انتهای رشته ها جزو رشته به حساب می آورد . یعنی هر فاصله دقیقا مانند یك كاراكتر از رشته است . گر چه در اكشن اسكریپت متغیر ها ، نام اشیاء و لیبل فریم ها حساس به بزرگی یا كوچی حروف نیستند ، اما در مورد رشته ها این خاصیت برقرار است .در مثال زیر جملات نوشته شده خروجی های گوناگونی را نشان میدهند . چون دو لغت “macro”و “MACRO” دو رشته واقعی هستند :

invoice.display = "macro";

invoice.display = "MACRO";

برای نشان دادن كوتیشن در یك رشته ، باید قبل از آن یك كاراكتر بك اسلش بگذارید . به اینكار میگویند فرار (Escaping) كاراكتر . كاراكترهای دیگری هم هستند كه در اكشن اسكریپت نشان داده نمیشوند مگر اینكه از روش های فرار كاراكتر خاص آنها استفاده كنید . جدول زیر تمامی كاراكتر های استفاده برای فرار یك كاراكتر را نشان میدهد :

Escape sequence

Character

\b

Backspace character (ASCII 8)

\f

Form-feed character (ASCII 12)

\n

Line-feed character (ASCII 10)

\r

Carriage return character (ASCII 13)

\t

Tab character (ASCII 9)

\"

Double quotation mark

\'

Single quotation mark

\\

Backslash

\000 - \377

A byte specified in octal

\x00 - \xFF

A byte specified in hexadecimal

\u0000 - \uFFFF

A 16-bit Unicode character specified in hexadecimal

اعداد :

نوع داده ای عدد از نوع داده ای بسیار دقیق شناور میباشد . شما میتوانید از عملگر های حسابی زیر جهت عملیات ریاضی استفاده كنید :

+  جمع

-  تفریق

*  ضرب

/  تقسیم

%  به پیمانه

++  افزایش

ـ ـ  كاهش

  • توجه : ++ جهت افزودن یك واحد به یك متغیر عددی كاربرد دارد  . بیشترین استفاده از آن نوشتن i++ بجای i=i+1 میباشد . این عملگر هم قبل و هم بعد از نام متغیر عددی استفاده میشود . در مثال زیر متغیر age ابتدا یك واحد اضافه شده و سپس با عدد 30 چك میشود .

if (++age >= 30)

اما در مثال زیر age بعد از انجام عمل مقایسه اضافه میشود .

if (age++ >= 30)

همچنین میتوانید از متد های آماده آبجكت ریاضی اكشن اسكریپت برای دستكاری اعداد استفاده كنید . در مثال زیر ازمتد sqrt جهت جذر گرفتن از عدد داده شده استفاده كرده ایم :

Math.sqrt(100);

نوع داده بولین :

یك مقدار بولین مقداریست كه دو حالت بیشتر نداره  ، یا true یا false . اكشن اسكریپت این دو مقدار را به دو مقدار 1 و 0 نیز تبدیل میكند . مقادیر بولین معمولا با عملگر های منطقی در جملات اكشن اسكریپت استفاده میشوند كه باعث انجام مقایسه ای برای اجرای كد بعدی میشود . بطور مثال در كد زیر فیلم در صورتی اجرا میشود كه متغیر Password مقدارش true  باشد

onClipEvent(enterFrame) {

               if (userName == true && password == true){

                               play();

               }

}

نوع داده تهیNULL) ) :

این نوع داده فقط یك مقدار دارد و آنهم NULL است به معنای پوچ ، یعنی هیچ داده ای وجود ندارد. این نوع داده برای تفاوت قائل شدن بین وضعیت های گوناگون كاربرد دارد .  چند مثال :

  • برای اینكه نشون بده هنوز یك متغیر مقدار دهی نشده یا اینكه در این لحظه هیچ مقداری نداره . 

  • برای هنگامی كه میخواهید در یك فانكشن مقدارش را چك كنید تا در صورت وجود ارسال شود .

  • و ...

نوع داده ای تعریف نشده ( Undefined) :

این نوع داده نیز فقط یك مقدار دارد كه Undefined است و برای متغیر ها استفاده میشود كه هنوز مقداری نگرفته اند .

 

 

 

 

 

 

 


تاریخ ثبت : شنبه 26 شهریور 1384 ساعت : 11:09 ق.ظ
اكشن اسكریپت : كنترل در زمان اجرا | ActionScript , | علی فیروزجنگ

اكشن اسكریپت : كنترل در زمان اجرا

وقتی شما یك اكشن اسكریپت مینویسد ،از پنل Actions برای ضمیمه كردن كد ها به فریم یا دكمه یا مووی كلیپ ها استفاده میكنید . اسكریپت هایی كه به فریم ها ضمیمه میكنید زمانی اجرا میشوند كه هد اجرایی فلش وارد آن فریم شود . اما فریم اول فیلم فلش بگونه ای متفاوت از سایر فریم ها عمل میكند . چون اولین فریم فیلم فلش كم كم لود میشود و اشیاء در آن همینطور كه دانلود میشوند نمایش داده میشوند و این موضوع بر روی اجرای اسكریپت ها اثر میگذارد . اما فریم های بعد از فریم اول تا وقتی تمام اشیاء داخل آن فریم لود نشوند نمایش داده نمیشوند .

اسكریپت هایی كه به مووی كلیپ یا دكمه ها نسبت داده شده اند زمانی اجرا میشوند كه رویداد (event) خواسته شده اتفاق افتد . یك رویداد یك اتفاقی است كه توسط كاربر یا گاهی توسط فیلم فلش شما اتفاق می افتد ، مانند كلیك كردن موس ، فشردن یك دكمه از كیبورد ، و یا لود شدن یك مووی كلیپ ( این آخری توسط فیلم اتفاق افتاده) . شما میتوانید بر اساس رویداد هایی كه رخ میدهد كد های متفاوتی بنویسید تا در هنگام رخ دادن هر رویداد یك كد خاص اجرا گردد .

اكشن هایی كه به دكمه ها یا مووی كلیپ ها نسبت میدهید در اكشن های خاصی بنام Handler حبث میشوند .on  و onClipEvent دوHandler  هستند . شما میتوانید یك یا بیش از یك Event را در یك Handler قرار دهید و همچنین میتوانید بیش از یك Handler برای هر شیئ قرار دهید . هندلر onClipEvent برای مووی كلیپ و هندلر on برای دكمه هاست . همچنین شما میتوانید از on برای خلق مووی كلیپ دكمه ای استفاده كنید كه رویداد های دكمه را دریافت میكند .

رویداد های مووی كلیپ و دكمه ها میتوانند توسط متد های خود شیئ نیز بكار گرفته شوند . شما باید یك فانكشن تعریف كنید و آن را به متد Event Hadler ارجاع دهید . این فانكشن وقتی كه رویداد اتفاق بیافتد اجرا میشود .

جدول زیر متد ها و Event Handler های دكمه ها را نشان میدهد :

Event handler actions

Event handler methods

on (press)

onPress

on (release)

onRelease

on (releaseOutside)

onReleaseOutside

on (rollOver)

onRollOver

on (rollOut)

onRollOut

on (dragOver)

onDragOver

on (dragOut)

onDragOuot

on (keyPress"...")

onKeyDown, onKeyUp

 

جدول زیر متد ها و Event Handler های مووی كلیپ ها را نشان میدهد :

Event handler actions

Event handler methods

onClipEvent (load)

onLoad

onClipEvent (unload)

onUnload

onClipEvent (enterFrame)

onEnterFrame

onClipEvent (mouseDown)

onMouseDown

onClipEvent (mouseUp)

onMouseUp

onClipEvent (mouseMove)

onMouseMove

onClipEvent (keyDown)

onKeyDown

onClipEvent (keyUp)

onKeyUp

onClipEvent (data)

onData

 

با اكشن اسكریپت همچنین میتوانید رویداد های TEXTbox و دیگر اشیاء اكشن اسكریپت را كنترل كنید .

 


تاریخ ثبت : شنبه 26 شهریور 1384 ساعت : 07:09 ق.ظ
اکشن اسکریپت ، یک زبان شیئ گرا | ActionScript , | علی فیروزجنگ

اکشن اسکریپت ، یک زبان شیئ گرا

به چه چیز هایی میتوان  Action Script  داد ؟

دكمه ها ، فریم ها و مووی كلیپ ها میتوانند اكشن اسكریپت بگیرند .

  • برای ربط دادن یك كد اسكریپت به فریم باید ابتدا روی فریم موردنظر كلیك كنید و سپس وارد پنل اكشنز شوید و كد های خود را وارد كنید . (توجه كنید كه فقط فریم هایی كه فریم كلیدی باشند اكشن میپذیرند و اگر روی یه فریم معمولی كلیك كنید كه فریم كلیدی نباشد اكشنی كه در آن فریم وارد كنید به اولین فریم كلیدی قبل از آن فریم تعلق میگیرد) .

  • برای كد دادن به یك دكمه ، ابتدا روی دكمه كلیك كنید و سپس وارد پنل اكشنز شده و كد موردنظرتان را به آن اضافه كنید . 

  • برای كد دادن به مووی كلیپ ها شما در اصل به یك كپی از مووی كلیپ كتابخانه كه روی صفحه فلشتان است اسكریپت میدهید و بقیه كپی هایی كه از سمبل روی آن كلیپ كتابخانه در صفحه می آورید از آن اسكریپت بهره نمی گیرند.(در صورتی كه هنگام ویرایش مووی كلیپ اصلی ، كدی را به یكی از فریم ها یا دكمه های موجود در مووی كلیپ بدهید آن اسكریپت برای سمبل است و تمام كپی هایی كه از روی آن میسازید آن كد را دارا هستند). وقتی شما یك اكشن به یك مووی كلیپ میدهید باید اكشن را در یك Event Handler قرار دهید تا در صورت رخ دادن آن Event اكشنی كه داده اید اجرا شود .(