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

نوشته شده توسط admin در ۱:۲۱ ب.ظ – 1:21 ب.ظ -

رشته چیست ؟

رشته مجموعه ای از کاراکتر هاست که در کنار هم قرار گرفته اند و میتواند شامل حروف و اعداد و کاراکتر های نقطه گذاری باشند . برای نوشتن رشته ها باید آنها را در میان کوتیشن قرار داد. مثلا : “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 ابتدا یک واحد اضافه شده و سپس با عدد ۳۰ چک میشود .

if (++age >= 30)

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

if (age++ >= 30)

 

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

Math.sqrt(100);

 

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

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

onClipEvent(enterFrame) {

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

                               play();

               }

}

 

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

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

  • برای اینکه نشون بده هنوز یک متغیر مقدار دهی نشده یا اینکه در این لحظه هیچ مقداری نداره .
  • برای هنگامی که میخواهید در یک فانکشن مقدارش را چک کنید تا در صورت وجود ارسال شود .
  • و …

 

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

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


فرستاده شده در آموزش نرم افزار فلش Flash | بدون نظر

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

نوشته شده توسط admin در ۱:۲۰ ب.ظ – 1:20 ب.ظ -

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

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

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

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

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

Event handler actions

Event handler methods

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

Event handler actions

Event handler methods

onClipEvent (load)

onLoad

onClipEvent (unload)

onUnload

onClipEvent (enterFrame)

onEnterFrame

onClipEvent (mouseDown)

onMouseDown

onClipEvent (mouseUp)

onMouseUp

onClipEvent (keyDown)

onKeyDown

onClipEvent (keyUp)

onKeyUp

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


فرستاده شده در آموزش نرم افزار فلش Flash | بدون نظر

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

نوشته شده توسط admin در ۱:۱۷ ب.ظ – 1:17 ب.ظ -

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

متغیر چیست ؟

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

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

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

 

یک مثال دیگر : در مثال زیر  x  مقدار ۱۵ گرفته و سپس مقدارش در Y کپی شده . در خط سوم مقدار x  مساوی با ۳۰ شده است  . اما مقدار Y همان ۱۵ میماند . چون Y  مقدارش را از X کپی گرفته و دیگر کاری به کار هم ندارند .

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


مربوط به:
فرستاده شده در آموزش نرم افزار فلش Flash | بدون نظر

اکشن اسکریپت : استفاده از عملگرها برای دستکاری مقادیر عبارت ها

نوشته شده توسط admin در ۱:۱۵ ب.ظ – 1:15 ب.ظ -

یک عبارت (معمولا عبارت ریاضی)جمله ایست که فلش میتواند مقدارش را محاسبه کند و یک مقدار برگرداند .شما میتوانید با ترکیب فانکشن ها ، عملگر ها و استفاده از و مقدار های داده شده یک عبارت بسازید . وقتی در پنل اکشن در حالت نرمال یک عبارت بنویسید باید گزینه Expression را در کنار جعبه متنی ای که عبارت را در داخل آن مینویسید تیک بزنید تا فلش آن را بعنوان یک عبارت در نظر بگیرد و هنگام استفاده از آن ، آن را محاسبه کند ، نه اینکه آن را مستقیم استفاده کنید . در صورت تیک نزدن گزینه Expression  فلش آن را بعنوان یک رشته در نظر میگیرد .

 

انواع عملگر ها در فلش :

۱-      عملگر های عددی

۲-      عملگر های مقایسه ای

۳-      عملگر های رشته ای

۴-      عملگر های منطقی

۵-      عملگر های Bitwise برای اعداد شناور

۶-      عملگر های تساوی

۷-      عملگر های انتقالی

۸-      عملگر های دسترسی آرایه و نقطه

 

۱ - عملگر های عددی :

کارشان جمع و تفریق و ضرب و تقسیم است ، بیشترین کاربرد عملگر افزایشگر ، استفاده i++ بجای i = i+1 است . عملگر افزایشگر هم قبل و هم بعد از متغیر ها میتواند بیاید . با یک مثال فرق آنها را متوجه میشوید :

if (++age >= 30)

در مثال فوق ابتدا  Age افزایش یافته و سپس مقایسه صورت میگیرد .

if (age++ >= 30)

در مثال دوم ابتدا مقایسه صورت میگیرد و سپس Age افزایش میابد .

 

عملگر

کار عملگر

+

جمع

*

ضرب

/

تقسیم

%

Mod (باقیمانده تقسیم)

-

تفریق

++

افزایش

کاهش

۲ - عملگر های مقایسه ای :

این عملگر ها مقادیر عبارات را بررسی کرده و یک مقدار بولین بر میگردانند . و اکثرا  در اکشن های if دار و در حلقه ها استفاده میشوند .

عملگر

کار عملگر

< 

کوچک تر از

> 

بزرگتر از

<=

کوچکتر مساوی

>=

بزرگتر مساوی

۳ - عملگر های رشته ای :

عملگر + یک حالت خاص را روی رشته ها انجام میدهد و آن متصل کردن رشته ها به یکدیگر میباشد .  مثالی برای جمع دو رشته :

"Congratulations, " + "Donna!"
نتیجه بصورت زیر در می آید : 
"Congratulations, Donna!"
 

۳ - عملگر های منطقی:

این عملگر ها مقادیر بولین را با هم مقایسه میکنند و یک مقدار بولین بعنوان جواب پس میدهند .

بطور مثال اگر هر دو مقدار داده شده به عملگر and مقدار true باشد جواب نهایی and مقدار true خواهد بود ،عملگر OR زمانی مقدارش true میشود که حداقل یکی از مقادیر داده شده به آن true باشد . عملگر not  یک مقدار را میگیرد و اگر آن مقدار درست نباشد (یعنی false باشد ) آنگاه مقدار not برابر با true میشود  . به مثال زیر توجه کنید :

if (i > 10 && _framesloaded > 50){
         play();
}

جدول زیر نمونه های عملگر منطقی را نشان میدهد .

Operator

Operation performed


فرستاده شده در آموزش نرم افزار فلش Flash | بدون نظر

اکشن اسکریپت : اولویت عملگر های فلش

نوشته شده توسط admin در ۱:۱۴ ب.ظ – 1:14 ب.ظ -

وقتی در یک عبارت ریاضی اکشن اسکریپت چند عملگر گوناگون را در کنار هم بکار میبرید فلش برای بعضی عملگر ها نسبت به بقیه حق تقدم قائل میشود . بطور مثال ضرب همیشه قبل از جمع انجام میشود .گرچه پرانتز ها همیشه بر همه چیز تقدم دارند .

 مثال زیر را مشاهده کنید :

 

Total = 2 + 4 * 3 ;

مقدار توتال در مثال فوق ۱۴ است (اول ضرب و بعد جمع)

Total = (2 + 4) * 3 ;

در مثال دوم جواب ۱۸ است . (اول پرانتز محاسبه شده و بعد ضرب)

 

 

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

 

عملگر

توضیحات

پشت هم آمدن

بالاترین اولویت

+

Unary plus

راست به چپ

-

Unary minus

راست به چپ

~

Bitwise one’s complement

راست به چپ

!

Logical NOT

راست به چپ

not

Logical NOT (Flash 4 style)

راست به چپ

++

Post-increment

چپ به راست

Post-decrement

چپ به راست

( )

Function call

چپ به راست

[ ]

Array element

چپ به راست

.

Structure member

چپ به راست

++

Pre-increment

راست به چپ

Pre-decrement

راست به چپ

new

Allocate object

راست به چپ

delete

Deallocate object

راست به چپ

typeof

Type of object

راست به چپ

void

Returns undefined value

راست به چپ

*

Multiply

چپ به راست

/

Divide

چپ به راست

%

Modulo

چپ به راست

+

Add

چپ به راست

add

String concatenation (formerly &)

چپ به راست

-

Subtract

چپ به راست

<< 

Bitwise left shift

چپ به راست

>>