بایگانی نویسنده

قالب دستوری اکشن اسکریپت

بهمن ۱۴م, ۱۳۸۷

نقطه :

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

بطور مثال خاصیت x که برای مووی ها میباشد مکان افقی مووی را روی صحنه مشخص میکند . مثلا عبارت ball.x نشان دهنده مشخصه x از کلیپ ball میباشد .

مثال دیگر : submit یک متغیر در کلیپ Form است که در کلیپ shop قرار دارد . عبارت shop.form.submit=True مقدار متغیر submit از form را True میکند .

مثال دیگر : عبارت ball.play(); را داریم . play یک متد از کلیپ ball است که باعت اجرای این کلیپ میشود .

نقطه همچنین با شیی مجازی _root و _parent کار میکند . شیی مستعار _root به Timeline اصلی بر میگردد. شما از این شیی میتوانید برای خلق Target path های مطلق استفاده کنید . بطور مثال عبارت زیر باعث فراخوانی فانکشن Buildgameboard در مووی کلیپ functions در Timeline اصلی میشود .

_root.functions.buildgameboard();

از شیی مجازی _parent برای مراجعه یه یک کلیپ که کلیپ کنونی در آن قرار دارد استفاده میشود . همچنین میتوانید برای ساخت target path وابسته استفاده اش کنید .

آکولاد:

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

on(release) {

myDate = new Date();

currentMonth = myDate.getMonth();

{

سمی کالن :

عبارات زبان اکشن اسکریپت با سمی کالن پایان میابد . مثال:

column = passedDate.getDay();

row = 0;

اگر شما سمی کالن پایانی را فراموش کنید هیچ مشکلی برای اسکریپت شمل پیش نمی آید اما بهتر است برای شیوایی اسکریپت خود آنرا همیشه بگذارید .

پرانتز ها :

وقتی شما یک فانکشن تعریف میکنید ، باید پارامتر های فرستاده شده در فانکشن را در پرانتز قرار دهید . مثال :

function myFunction (name, age, reader){

}

همچنین برای آسانتر شدن عبارات ریاضی در اسکریپت نیز از پرانتز ها بصورت ذیل استفاده میشود .

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

Total =2+3*5 ;

Total =(2+3)*5 ;

در عبارت اولی ابتدا عمل ضرب و سپس جمع صورت میگیرد و پاسخ عدد ۱۷ است

در عبارت دوم بعلت وجود پرانتز ابتدا پرانتز محاسه و سپس ضرب صورت میگیرد و جواب ۲۵ است .

از پرانتز همچنین برای مقدار دهی عبارات استفاده میشود . قالب کلی آن مانند مثال زیر است :

(new Color(this)).setRGB(0xffffff);

اگر بخواهید از پرانتز استفاده نکنید باید از ۲ عبارت استفاده کنید :

myColor = new Color(this);

myColor.setRGB(0xffffff);

حساسیت به حروف کوچک و بزرگ :

فقط کلمات کلیدی اکشن اسکریپت به حروف حساسند و در بقیه موارد میتوانید از هر دو حالت استفاده کنید .

شما نمیتوانید از اسم های رزرو شده اکشن اسکریپت بجای نام اشیای خود استفاده کنید .

اگر کلمات کلیدی اسکریپت را از لحاظ کوچکی و بزرگی اشتباه بنویسید اسکریپت حاصل دچار مشکل خواهد شد . keyword ها در حالت پیش فرض در پنجره اکشن به رنگ آبی هستند

کامنت نویسی :

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

کلمات کلیدی :

اکشن اسکریپت تعدادی از لغات خاص را برای استفاده های خاص زبان اسکریپت برای خود رزرو کرده که شما نمیتوانید این لغات را بعنوان اسم متغیر ، فانکشن یا اسامی لیبل استفاده کنید .

این کلمات عبارتند از :

break

else

instanceof

typeof

case

for

new

var

continue

function

return

void

default

if

switch

while

delete

in

this

with

ثابت ها :

ثابت ها چیز هایی مانند متغیر ها هستند با این تفاوت که مقدارشان هرگز تغییر نمیکند . بطور مثال ثابت های BACKSPACE, ENTER, QUOTE, RETURN از ثابت های شیی key هستند که به کلید های کیبورد مربوطند . مثلا برای اینکه بفهمید کاربر کدام کلید را فشار داده از کد زیر استفاده میکنیم .

if(Key.getCode() == Key.ENTER) {

alert = “Are you ready to play?”;

controlMC.gotoAndStop(5);

}

آشنایی با سمبل ها در فلش

بهمن ۱۴م, ۱۳۸۷

تفاوت سمبل های Graphic و Movie در فلش :

سمبل های گرافیک معمولا برای ساخت سمبل های ثابت استفاده میشوند و سمبل های movie برای ساخت سمبل های متحرک . ولی اگر به پنجره ویرایش یک سمبل گرافیک بروید میبینید که دارای Timeline است .ولی کاربرد آن در سمبل گرافیک کمی با سمبل Movie فرق دارد. اگر شما یک سمبل Movie متحرک درست کنید میتوانید از آن در یک فریمی که فیلم stop میشود استفاده کنید و این کلیپ در آن فریم حرکت خود را خواهد داشت ، با اینکه فیلم فلش شما ایستاده است. اما اگر در یک سمبل گرافیک ، یک قطعه متحرک بوجود آورید سمبل شما تا وقتی متحرک است که فیلم فلش شما در حال اجراست و به محض ایستادن فیلم در هر فریمی ، آن سمبل نیز از حرکت می ایستد و بصورت ثابت دیده میشود.

استفاده از یک سمبل در سمبل دیگر :

در هنگام import کردن یک عکس در فیلم فلش چند نکته مهم هست .

۱- عکس را در کوچکترین سایز ممکن وارد فلش کنید . چون اگر عکس بزرگی را وارد کنید و در فلش با ابزار های transform آن را کوچک کنید علاوه بر افزایش حجم فایل شما ، آن عکس نیز با شفافیت کامل دیده نمی شود.

۲- شما میتوانید از عکس هایی که وارد فلش کردید ، سمبل بسازید و سمبل آن را در فیلم فلش نمایش دهید . اینکار باعث میشود ابزار های بیشتری برای کار روی عکس داشته باشید . مثلا از روی عکستان سمبل گرافیک بسازید و آن را وارد صفحه فلش کنید . حالا یک Motion Tween بسازید از این سمبل گرافیک . در فریم کلیدی آخر آن کلیک کنید و سپس روی سمبل گرافیک کلیک کنید . حالا در پنجره properties از منوی بازشوی color گزینه alpha را برگزینید و مقدارش را صفر کنید . خوب ، فیلم فلشتان را اجرا کنید ، میبینید که سمبل شما آرام آرام در صفحه محو میشود .

۳- توجه داشته باشید که فلش هنگام ساختن سمبلی از روی سمبل دیگر ، عکس یا شکل های سمبل اولی را در سمبل ساخته شده کپی نمی کند . بلکه سمبل اولی را در سمبل ساخته شده نشان میدهد . بنا بر این پاک کردن سمبل اولی باعث خراب شدن سمبل هایی میشود که سمبل اولی در آنها بکار رفته است.

تغییر خواص سمبل ها با اسکریپت

ما سه نوع سمبل داریم –graphic , movie , botton - از بین این سمبل ها میتوان خواص دو سمبل دکمه و مووی(متحرک ) را براحتی کنترل کرد . برای کنترل هر شیی ابتدا باید نامی به آن بدهیم تا در کد نویسی با آن نام شیئ را خطاب کنیم . روی سمبل مورد نظرتان کلیک کنید و در پنجره properties در سمت چپ یک کادر متنی کوچک میبینید که داخل آن با حروف کمرنگ نوشته شده : instance name روی آن کلیک کنید و نامی برای شیی خود بگذارید . حالا یک دکمه روی فرم بگذارید و کد زیر را برای آن بنویسید ( کد زیر را در حالت expert وارد کنید)

On (release) {

Setproprty(“object”,_alpha,33);

}

درکد فوق object نام شیی مورد نظر و alpha نام خاصیت مورد نظر و ۳۳ مقدار داده شده به خاصیت آلفا میباشد . خاصیت آلفا همانطور که میدانید میزان پدیدار بودن شیئ را تعیین میکند و کم کردن آن باعث محو شدن شیی میشود .

خواص دیگری که میتوانید مقدارشان را تعیین کنید عبارتند از :

_rotate میزان چرخش شیی

_height ارتفاع سمبل

_width طول سمبل

_x,_y نیز محل قرار گیری سمبل در صفحه هستند .

_visible نیز قابل دید بودن یا نبودن شیئ را معلوم میکند که باید مقدار آنرا بجای عدد ، True یا False بگذارید .

Action Script – FScommand

بهمن ۱۴م, ۱۳۸۷

چگونه در فلش فایل exe بسازیم ؟

همانطور که اکثرا میدانید برای ساخت فایل های اجرایی با فلش بعد از ساخت فایل swf به منوی فایل رفته و سپس روی گزینه publish setting کلیک میکنیم . در پنجره ای که باز میشود گزینه windows projector را تیک میزنیم . حالا برای ساخت فایل exe دکمه publish را میزنیم . فایل exe ما آماده است . اما این فایل یک فیلم فلش است که همیشه در پنجره flash player اجرا میشود . با این فرق که اجراگر فلش همراه فایل ، ضمیمه شده است و در دستگاه هایی که این player را ندارند اجرا میشود . در ضمن برای اینکه کاربر فلش شما را ببندد باید flash player آن را ببندد . حال برای اینکه یک دکمه خروج در برنامه بگذاریم چه میکنیم ؟

اکشن اسکریپت fscommand

یک دکمه روی فیلم خود بگذارید . حال آنرا انتخاب کنید و با زدن دکمه F9 پنجره Actions را باز کنید . کتاب Actions و سپس کتاب Browser/network را باز کنید و روی fscommand را دوبل کلیک کنید . حالا از منوی بازشوی سمت راست ، گزینهquit را انتخاب کنید . حال زدن این دکمه توسط کاربر در برنامه باعث بسته شدن فیلم فلش میشود ! .

اکشن اسکریپت برای full screen شدن

یک دکمه روی فیلم خود بگذارید . باز هم fscommand را دوبل کلیک کنید و اینبار از منوی سمت راست آن fullscreen را برگزینید. میبینید که در جعبه متنی بالای آن نام fullscreen و در قسمت پارامتر true نوشته شده است .این هم کد کامل آن که فلش برای شما ساخته است .

on (release) {

fscommand(“fullscreen”, “true”);

}

اگر خواستید فیلم با زدن دکمه از حالت فوق خارج شود خودتان پارامتر true را به false تغییر دهید .

تغییر سایز فلش با سایز صفحه شما

اگر بخواهید فیلم فلش شما هنگامی که کاربر سایز FLASH PLAYER را عوض میکند ثابت بماند باید در منوی بازشوی fscommand گزینه allowscale را مساوی false قرار دهید . این هم کد کامل آن :

on (release) {

fscommand(“allowscale”, “false”);

}

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

بهمن ۱۴م, ۱۳۸۷

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

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

  • برای ربط دادن یک کد اسکریپت به فریم باید ابتدا روی فریم موردنظر کلیک کنید و سپس وارد پنل اکشنز شوید و کد های خود را وارد کنید . (توجه کنید که فقط فریم هایی که فریم کلیدی باشند اکشن میپذیرند و اگر روی یه فریم معمولی کلیک کنید که فریم کلیدی نباشد اکشنی که در آن فریم وارد کنید به اولین فریم کلیدی قبل از آن فریم تعلق میگیرد) .
  • برای کد دادن به یک دکمه ، ابتدا روی دکمه کلیک کنید و سپس وارد پنل اکشنز شده و کد موردنظرتان را به آن اضافه کنید .
  • برای کد دادن به مووی کلیپ ها شما در اصل به یک کپی از مووی کلیپ کتابخانه که روی صفحه فلشتان است اسکریپت میدهید و بقیه کپی هایی که از سمبل روی آن کلیپ کتابخانه در صفحه می آورید از آن اسکریپت بهره نمی گیرند.(در صورتی که هنگام ویرایش مووی کلیپ اصلی ، کدی را به یکی از فریم ها یا دکمه های موجود در مووی کلیپ بدهید آن اسکریپت برای سمبل است و تمام کپی هایی که از روی آن میسازید آن کد را دارا هستند). وقتی شما یک اکشن به یک مووی کلیپ میدهید باید اکشن را در یک Event Handler قرار دهید تا در صورت رخ دادن آن Event اکشنی که داده اید اجرا شود .(Event به معنای رویداد است که در تمامی زبان های برنامه نویسی نیز به همین نام مرسوم است . رویداد یعنی رخ دادن یک اتفاق بر روی شیئ مورد نظر . مثلا رد شدن موس از روی مووی کلیپ یک رویداد است و یا کلیک روی آن یا خاتمه یافتن صدایی که به یک فریم اختصاص داده اید.).

اسکریپت نویسی شیئ گرا  :

در اسکریپت نویسی شی گرا ، اطلاعات در گروه های خاصی دسته بندی میشوند که به آنها Class میگویند . شما میتوانید چندین کپی از یک کلاس را در اسکریپت خود بسازید که به هر یک از آنها یک شی (Object) میگوییم . شما میتوانید کلاس های مربوطه را خودتان بسازید و یا از کلاس های آماده فلش در پوشه Objects در پنل اکشنز استفاده کنید.

وقتی شما یک کلاس میسازید ، باید تمامی دارایی ها ( property ) و متد Method های مربوط به هر شی ای را که ساخته اید تعریف کنید. مثلا یک آدم دارای چه دارایی هایی است ؟ چشم ، دست ، مو ، و مانند آن . و دارای چه متد هایی ؟ متد راه رفتن ، خندیدن ، حرف زدن و غیره . در مثال فوق کاراکتر آدم یک کلاس است و هر کپی از روی آن یک شی خواهد بود . اشیاء در اکشن اسکریپت میتوانند اطلاعات یا گرافیک ها را حمل کنند. بطور مثال یک مووی کلیپ در فیلم فلش ما در اصل یک شی از کلاس مووی کلیپی است که در کتابخانه آن فیلم فلش قرار دارد و شامل تمام دارایی ها و متد های شی اصلی است.

برای تعریف کردن یک کلاس شما باید یک فانکشن constructorتعریف کنید بطور مثال اگر شما اطلاعاتی درباره یک دوچرخه سوار در فیلم فلش خود دارید شما میتوانید یک فانکشن از نوع constructor بنام Biker بسازید و برای آن دو پراپرتی زمان و فاصله تعریف کنید و یک متد Getspeed که این متد سرعت دوچرخه سوار را در هر لحظه که فراخوانی شود میدهد .

function Biker(t, d) {

this.time = t;

this.distance = d;

this.getSpeed = function() {return this.time / this.distance;};

}

در مثال بالا یک فانکشن ساختیم که دو متغیر برای دریافت اطلاعات بنام های t , d دارد .وقتی شما این فانکشن را برای ساخت یک کپی از شی آن فراخوانی میکنید باید پارامتر های تعریف شده را نیز بهمراه نام فانکشن وارد کنید . به مثال زیر توجه کنید:

emma = new Biker(30, 5);
hamish = new Biker(40, 5);

در کد های بالا دو شیئ biker با نام های emma و hamish ساختیم . همانطور که میبینید بعد از نوشتن نام فانکشن داخل پرانتز پارامتر های تعریف شده را هم نوشته ایم.

وراثت در اسکریپت نویسی شیئ گرا :

در اسکریپت نویسی شیئ گرا Class ها میتوانند متد ها و پراپرتی ها را به روش وراثت inheritance از همدیگر دریافت کنند . شما میتوانید وراثت را برای گسترش یا دوباره سازی متد ها و پراپرتی های یک کلاس بکار گیرید . کلاسی که ار کلاس دیگر ارث میبرد Subclass نامیده میشود .(sub به معنای زیر مجموعه است) و کلاسی که متد ها و پراپرتی هایش را به کلاس دیگر پاس میدهد superClass نامیده میشود . یک کلاس میتواند هم Subclass و هم SuperClass باشد .

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

بهمن ۱۴م, ۱۳۸۷

رشته چیست ؟

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

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

invoice.display = “macro”;

invoice.display = “MACRO”;

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

Escape sequence

Character

\b

Backspace character (ASCII icon cool اكشن اسكريپت : متغير هاي رشته اي ، عددي و بولين و نال

\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 است و برای متغیر ها استفاده میشود که هنوز مقداری نگرفته اند .

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

بهمن ۱۴م, ۱۳۸۷

وقتی شما یک اکشن اسکریپت مینویسد ،از پنل 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 و دیگر اشیاء اکشن اسکریپت را کنترل کنید .

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

بهمن ۱۴م, ۱۳۸۷

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

متغیر چیست ؟

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

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

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

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

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

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

بهمن ۱۴م, ۱۳۸۷

یک عبارت (معمولا عبارت ریاضی)جمله ایست که فلش میتواند مقدارش را محاسبه کند و یک مقدار برگرداند .شما میتوانید با ترکیب فانکشن ها ، عملگر ها و استفاده از و مقدار های داده شده یک عبارت بسازید . وقتی در پنل اکشن در حالت نرمال یک عبارت بنویسید باید گزینه 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

&&

Logical AND

||

Logical OR

!

Logical NOT

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

بهمن ۱۴م, ۱۳۸۷

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

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

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

چپ به راست

>>

Bitwise right shift

چپ به راست

>>>

Bitwise right shift (unsigned)

چپ به راست

<

Less than

چپ به راست

<=

Less than or equal to

چپ به راست

>

Greater than

چپ به راست

>=

Greater than or equal to

چپ به راست

lt

Less than (string version)

چپ به راست

le

Less than or equal to (string version)

چپ به راست

gt

Greater than (string version)

چپ به راست

ge

Greater than or equal to (string version)

چپ به راست

==

Equal

چپ به راست

!=

Not equal

چپ به راست

eq

Equal (string version)

چپ به راست

ne

Not equal (string version)

چپ به راست

&

Bitwise AND

چپ به راست

^

Bitwise XOR

چپ به راست

|

Bitwise OR

چپ به راست

&&

Logical AND

چپ به راست

and

Logical AND (Flash 4)

چپ به راست

||

Logical OR

چپ به راست

or

Logical OR (Flash 4)

چپ به راست

?:

Conditional

راست به چپ

=

Assignment

راست به چپ

*=, /=, %=, +=, -=, &=, |=, ^=, <<=, >>=, >>>=

Compound assignment

راست به چپ

,

Multiple evaluation

چپ به راست

پایین ترین اولویت

آموزش فلش : لود کردن عکس بصورت داینامیک

بهمن ۱۴م, ۱۳۸۷

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

  • برای لود کردن تصاویر jpeg در زمان اجرا در یک LEVEL ، باید از متد LoadmovieNum و برای لود کردن عکس در یک Movieclip باید از متد loadmovie متعلق به شیئ Movieclip استفاده کنید . هنگامی که عکسی را در Movieclip لود میکنید این عکس جایگزین تمام محتویات Movieclip میشود.
  • برای بدست آوردن مقدار بایت های دانلود شده از متد getbytesLoaded متعلق به شیئ Movieclip استفاده میکنیم.
  • فلش برای فایل های عکس فلش فقط فرمت Standard Jpeg را ساپورت میکند و حالت Progressive jpeg را قبول نمیکند .
  • مثال : کد زیر یک عکس را در Movieclip لود میکند . جای آن روی timeline جاییست که Movieclip مربوطه قرار دارد :

myMC.loadmovie(http://www.Persianyahoo.com/index/logo.jpg)