بياييد اكشن اسكريپت را شروع كنيم

سلام من اين قسمت رو توي سايت Persiantoolsهم گذاشتم .
اينجا هم ميگذارمش هر كي تونست نظر بده.
تشكر
------------------------------------------------------------


شروع كار با Action Script:
------------------------------------------------------------
ُSyntax
------------------------------------------------------------
بزبان ساده گرامر يك زبان برنامه نويسي را گوئيم.
شايد بتوان گفت مهمترين عامل در سهل كردن كار با يك زبان برنامه نويسي ياد گرفتن Syntaxاست.
--نقطه"Dot":
در اكشن اسكريپت نقطه براي براي نمايش Propertyها Methodها ومسيردهي يكObjectبكار ميرود.
بعنوان مثال براي مسير دهي يك شئ كه در Timelineاصلي قرار دارد و نام آنرا"Obj_1"گذاشته ايم بصورت زير عمل ميكنيم:

کد:
_root.obj_1


يا براي تعريف خاصيت "موقعيت رو محور xها براي همان شئ بصورت زير عمل ميكنيم:


کد:
1500=_root.obj_1._x


توجه:
تمامي Propertyها با underlineشروع ميشوند.

و براي تعريف يك متد نيز بصورت مشابه عمل ميكنيم.

بعد از هر دستور شرط ها را داخل پرانتز و دستور را داخل آكولاد‍‌{}مينويسيم.

در صورتيكه شرطي نداشته باشيم بعد از دستور پرانتز هاي باز وبسته و پس از آن سمي كالن يا نقطه ويرگول ميگذاريم";"

حساسيت به حروف Capital:
كلمات كليدي ASبه حروف كوچك و بزرگ حساسند.
بعنوان مثال دستور Stopبعنوان يك دستور تماما با حروف كوچك نوشته ميشوند ولي بعنوان متد بصورتStop();نوشته ميشود.
------------------------------------------------------------
Events
------------------------------------------------------------
اتفاقاتي هستند كه روي ميدهند!
البته در ASتمامي اتفاقات معلول كد هاي نوشته شده هستند و هيچ اتفاقي به خودي خود روي نمي دهد.
در AS2قطعه برنامه اي بنام Event handlerكنترل رويداد ها را بر عهده دارد.

**اتفاقات در چه صورت رخ ميدهند؟
1-در صورتيكه كدهاي AS2روي يك فريم نوشته شوند به محض اينكه Play headبه آن فريم ميرسد رخ ميدهند"key Frame events"
2-در صورتيكه يك ويژگي از Movie clip را براي كد تعريف كرده باشيم-بعنوان مثال loadشدن يك Movie.""Movie events.
3-در صورتيكه عمل خاصي از ماوس سر زند كه به آن "Mouse events"ميگويند.
4-و...
------------------------------------------------------------
targetting
------------------------------------------------------------
مسير دهي عامل مهمي در اجراي كدهاست چرا كه در صورت تايپ مسير نادرست برنامه به درستي اجرا نخواهد شد
مسير دهي بر چند نوع است:
*******1-مسير دهي پايه اي با _root:
مبناي اين گونه مسير دهي Time lineاصلي پروژه ميباشد كه از آنجا ميتوان به Time lineهاي ديگر Movie clipها راه يافت.

//مثال:
بعنوان مثال ميخواهيم از Movie clipاي به نام test_mcكه در Time lineاصلي قرار دارد Movie clipديگري بنام test2_mcرا در فريم اول متوقف كنيم و اين عمل بايد در فريم 12Time lineاصلي اتفاق بيفتد.
پس بايد عمليات زير را انجام دهيم:
1-در Time line اصلي يك لايه جديد بنام ASميسازيم.
2-در فريم 12آن يك key frameميسازيم.
3-دستور زير را براي آن تعريف ميكنيم:

کد:
_root.test_mc.test2_mc.stop();



*******2-مسير دهي نسبي:
مسير دهي نسبي با دو دستور _parentو thisعمل ميكند.
_parentما را به يك Time line عقب تر ميبرد.
بديهي است كه _parent._parentما را به دو Time line عقب تر ميبرد.
this موقعيت ما را نسبت به Time lineاي كه در آن هستيم مشخص ميكند.
------------------------------------------------------------
Operators
------------------------------------------------------------
عملگز ها بخش مهمي در محاسبات رياضي و منطقي هستند كه برخي از آنها عبارتند از:
==:برابر بودن دو رشته
>:كوچكتر بودن
<:بزرگتر بودن
=:برابر بودن/اختصاص دادن
:>=كوچكتر مساوي
:<=بزرگتر مساوي
!=:نامساوي بودن
&&:و
||:يا
-----------------------------------------------------------
Variables
-----------------------------------------------------------
متغير ها ميتوانند يك مقدار يا stringرا به خود اختصاص دهند.
در Flashبه اين عناصر Movie clipهم اضافه شده;

يادآوري :براي اختصاص دادن يك نام به variableآنرا با يك علامت مساوي ،مساوي با متغير مورد نظر قرار ميدهيم.
براي اختصاص دادن Stringبه متغير بين آنها دو مساوي قرار ميدهيم.
براي اضافه كردن يك به يك متغير عددي بعد از آن ++قرار ميدهيم.
يعني:
n++=n+1
-----------------------------------------------------------
Bolean Variables
-----------------------------------------------------------
متغيري كه فقط دو مقدار TrueوFalseرا بخود ميگيردرا متغير بولي گوييم.
از اين متغير ميتوانيم در شرط ها استفاده كنيم.
*******مثال:

کد:
Var1=True 
if(var1){
Commands;
}else{
other commands;
}



در اين مثال چون var1=trueدستورات زير مجموعه ifاجرا ميشوند نه else.
-----------------------------------------------------------
Mouse events
-----------------------------------------------------------
PRESS=فشردن
RELEASE=رها كردن
KEYPRESS=فشردن يك كليد از KEY BOARD
و...
اين EVENTها در دستور ONبكار ميروند
*******مثال:


کد:
on(release){
Stop();._root.(MOVIE CLIP NAME)
}


-----------------------------------------------------------
Comments
-----------------------------------------------------------
خطوطي هستند كه براي فهم و درك آسانتر دستورات ACTION SCRIPTبه اكشنها اضافه ميكنيم و نقشي در اكشنها ندارند.
براي افزودن يك COMMENT كافيست در سطر مربوطه توضيح مورد نظرمان را بين دو علامت دابل اسلاش قرار دهيم.
اين عمل براي غير فعال كردن دستورات نيز ميتواند مفيد باشد يعني دستورات مورد نظر خود را براي غير فعال كردن ميتوانيم بين دو علامت دابل اسلاش قرار دهيم
اگر بخواهيم بلاك كدي را غير فعال كنيم اول بلاك كد يك */وآخر آن يك/* ميگذاريم
براي فعال كردن يك بلاك كد غير فعال هم اين علامات را از ابتدا و انتهاي آن بر ميداريم

----------------------------------------------------------
Output panel
----------------------------------------------------------
با فشردن كليدF2ميتوانيم اين پنجره را فعال كنيم
تقريبا تمامي فعاليت هاي پروژه فلش را كنتزل كرده و نتيجه تمامي ERRORها را اعلام ميكند
اكشني كه به ديدن نتايج در اين پنجره منتهي ميشود TRACEاست.
*******مثال:

کد:
trace(100/25);


كه در پنجره OUTPUTبه ما مقدار 4 را ميدهد
----------------------------------------------------------
حركت در Time line
----------------------------------------------------------
براي رفتن به فريم بعدي درTIMELINE از

کد:
nextframe();

و براي رفتن به فريم قبلي از

کد:
prevframe();

براي توقف نمايش از

کد:
stop();

براي حركت از

کد:
play();


استفاده ميكنيم.

براي رفتن به يك فريم خاص در يك صحنه خاص از متد GOTOاستفاده ميكنيم.
اين متد داراي دو Option ميباشد كهPlayو Stopميباشند.
ساختار اين دستور:

کد:
gotoAndPlay("scene's name", frame);

كه در قسمت frameميتوان نام فريم(label)يا شماره آنرا نوشت.

دقت كنيد كه نام يك فريم يا يك صحنه بايد داخل علامت""(كوتيشن)باشد.
--------------------------------------------------------
Property
--------------------------------------------------------
يك جزء يا يك موقعيت از يك شئ را خصيصه آن ميگوييم.
---خصوصيات عمومي:
1-IDيا Instance name:شاخصه اي كه براي يك objectتخصيص ميدهيم.
2-مختصات برداري:
x_:مختصات روي محور xها
y_:مختصات روي محور yها
توجه:مبداء مختصات در گوشه پايين سمت چپ قرار دارد و مختصات مركز صفحه1500,1500))ميباشد.
مثال:

کد:
on(release){
_root.Objectname._x=X'sPosition
_root.objectname._y=Y'sPosition
}




دراين مثال اگر روي دكمه اي در هر كجا نوشته شود در صحنه اصلي objectما را به موقعيت X,Y))ميبرد.
3-مقياس(scale):
xscale_:مقياس طول
yscale_:مقياس عرض
4-آلفا:
_alpha:شفافيت رنگ را تنظيم ميكند.
5-height
6-name
7-rotation
8-width
و....
------------------------------------------------------
ياد آوري Text fields
------------------------------------------------------
ُStatic text:متن غير قابل تغيير يا ايستا
Dynamic text:متن قابل تغيير يا پويا
Input text:متن ورودي!
اين خصوصيات را ميتوان در پنجره proprtiesيك فيلد متني يافت.
ميتوانيم در مشخصات فيلد متني نام متغيرمان را هم وارد كنيم.
براي استفاده از متغير هايي كه در Time lineهاي مختلفند بايد آدرس دهي كرد.
Input text:براي دريافت اطلاعات از كاربر استفاده ميشود.
-------تبديل متغير رشته اي به متغير عددي:
Number(varname);​
------------------------------------------------------
ساختارهاي شرطي
------------------------------------------------------
1-ساختار If else:

کد:
if (condition) {
commands
}else if {
other Commands
}

[2-ساختارif else if:
در اين ساختار در صورتيكه شرط اول درست نباشد در قسمت else به شرط دوم ميپردازيم.
اگر شرط اول بر قرار باشد ديگر به شرط دوم نمي رسيم.
نكته:به خاطر داشته باشيد كه براي تست برابر بودن دو مقدار بين آنها == قرار ميدهيم(براي stringها).
در اين مدل شرط ميتوانيم چند else ifداشته باشيم.

--دستور Switch:
دستوري است براي راحت تر ساختن ساختار شرطي
توضيح:
در داخل پرانتز دستور نام متغير را وارد ميكنيم و در جلوي هر يك از caseها مقدار متغير را وارد ميكنيم.
يعني اگر متغير برابر مقدار 1 باشد commands1اجرا شود.

*******مثال:
کد:
1مقدارcase :
commands1;
case 2مقدار:
commands2;
case 3مقدار:
commands3;
default:
[other command;
يعني اگر هيچكدام از شرطها صحيح نبود defaultاتفاق بيفتد.
توجه :حلقه whileو do whileو نيز بعضي از حلقه هاي ديگر هم در فلش كاربرد دارند.
 

ققنوس

Member
سلام
دستت درد نكنه خيلي زحمت كشيدي.
فقط من وقت نكردم همشو بخونم ولي سيو كردم بعدا
يه نظر دارم بهتره اينا رو با يه مثال عملي پياده كني مفهموتر بشه.
 
ققنوس گفت:
سلام
دستت درد نكنه خيلي زحمت كشيدي.
فقط من وقت نكردم همشو بخونم ولي سيو كردم بعدا
يه نظر دارم بهتره اينا رو با يه مثال عملي پياده كني مفهموتر بشه.
اول-نظر لطفتونه!!
دوم-خواهش ميكنم كه نظراتتون رو در اون يكي فرام كه اسمش نظر بدين هست بگين كه اينجا براي ادامه مطلب زيادي شلوغ نشه.
متشكرم
-----------------------------------------
هر كدوم از دوستان كه نظر بدن باعث پيشرفت كار و خوشحالي بنده ميشن.
-----------------------------------------
باز هم تشكر
 

amir_s

Active Member
آفرين ... كار خوبيه ... يه چند روزيه انجمن اكشن اسكريپت خوابيده ... فكر كنم بايد يه تكون اساسي بهش بديم ... با همين چيزها و آموزش ها ...
 
سلام
-------------------------------------
معذرت ميخوام كه يه مدت نبودم اگرچه مثل اينكخ كسي هم replyنداده.!!
اما زيادي سر خودمو شلوغ كردم اگه چند نفر پيدا بشن كمك كنن سريعتر پيش ميره.
در ضمن از اينكه جوابها و نظراتتون رو توي قسمت نظر بديد ميگين واقعا متشكر!!!!!!!!!!!!
هر كي خواست اعلام آمادگي كنه آدرس Mailboxمن اينه:
[align=left][email protected]
 
Only_flash گفت:
سلام
-------------------------------------
معذرت ميخوام كه يه مدت نبودم اگرچه مثل اينكخ كسي هم replyنداده.!!
اما زيادي سر خودمو شلوغ كردم اگه چند نفر پيدا بشن كمك كنن سريعتر پيش ميره.
در ضمن از اينكه جوابها و نظراتتون رو توي قسمت نظر بديد ميگين واقعا متشكر!!!!!!!!!!!!
هر كي خواست اعلام آمادگي كنه آدرس Mailboxمن اينه:
[align=left][email protected]

آقا من زياد بلد نيسم اكشن رو ولي هر كمكي كه ازدستم بر بياد و بتونم هسم
شومام از اينكه كسي ريپلاي نميزنه سرد نشو چون فكر كنم اكثرا بربچ ميخونن ولي خوب كسي ريپ نميزنه شما كاردا بكن كه كار خيلي توپي در پيش گرفتي:<
 
بالا