آموزش قدم به قدم Action Script 3.0

Aliɾeza

Member
بـه نـــام خدا
درود

دوستان امروز تصمیم گرفتم آموزش قدم به قدم زبان برنامه نویسی (اسکریپت نویسی) پلتفرم فلش که همون ( جدیدترین ورژن ) اکشن اسکریپت 3 هست رو آموزش بدم من خودم تازه شروع به یادگیری این زبان کردم برای همین اگه جایی سوتی و موتی دادم شرمنده، خوب دوستان اول از تاریخچه زبان اکشن اسکریپت و اینکه چطوری رونق گرفت با اجازه دوستان و اساتید شروع میکنیم :

تاریخچه :

اکشن اسکریپت 1.0 در فلش 5 شکوفا شد البته در نسخه های قبلی فلش به طراحان اجازه ی وارد کردن دستوراتی برای فیلم ها خود را می داد اما اونا بسیار ساده بودند و اما اونا بسیار ساده و ابتدایی بودند و نمیشد این دستورات ساده رو به عنوان یک زبان برنامه نویسی شناخت، اکشن اسکریپت 1.0 بر اساس ECMAScript 262 نوشته شده بود که یک جورایی با جاوا هم خانواده حساب میشد.
اکشن اسکریپت 2.0 با فلش MX 2004 پرده برداری شد و بر اساس یک ورژن جدیدتر ECMAScript نوشته شده بود با اینکه این زبان ویژگی ها جدیدی داشت از جمله : کلاس ها، اینترفیس ها و خاصیتهای private و public ولی نسبت به ورژن قبلی تفاوتی نکرده بود. تا اینکه اکشن اسکریپت 3.0 بر مبنای آخرین ورژن ECMAScript یعنی ECMAScript 4 ارایه شد و امکانات جدیدی رو در زمینه برنامه نویسی فلش فراهم کرد و بدلیل اینکه اکشن اسکریپت نسبت به نسخه های قبلی خود بسیار متفاوت است و به یک کامپایلر کاملا جدید نیاز داره در حال حاضر AS3 جزوی از Flex هم حساب میشه !

نکته :

اگه دوست دارید بدونید که ECMAScript چیه باید بگم که یک زبان برنامه نویسی تعریف شده بر اساس یک استاندارد Ecma International است.
این سازمان به ایجاد، تعریف و ارتقا استاندارد های تمام موارد فنی زبان های سطح بالا کمک میکنه، ECMAScript درسال 1997 با هدف حل ناسازگاری مدل های مختلف جاوااسکریپت در نت اسکیپ و اینترنت اکسپلورر ایجاد شد. سپس به یک استاندارد غیر رسمی برای زبان های اسکریپت نویسی در اینترنت شد و برای همین ماکرومِدیا یا ادبی در حال حاضر تصمیم گرفت از این استاندارد برای زبان اسکریپت نویسی فلش استفاده کند


صعود اکشن اسکریپت 3.0 :

ادبی در جولای 2006 اکشن اسکریپت 3.0 رو همراه با Flex 2 ارایه کرد و Flex 2 یک محیط برنامه نویسی کامل برای برنامه های اینترنتی غنی ( Rich Internet Application-RIA ) را فراهم کرد اما دارای تایم لاین فلش نیست اما همان طور که میدونید ادبی همیشه یک سوپرایز برای کاربراش داره و اونم اینترفیس کاربری با استفاده از فایل های MXML ( زبان مارک آپ ادبی برای برنامه های اکشت اسکرپیت تحت فریم ورک Flex ) به جای تایم لاین فلش هست که با استفاده از کد اکشن اسکریپت 3.0 و MXML قایل های SWF نهایی رو ایجاد می کنند .

برای ایجاد فایل های SWF با اکشن اسکریپت دو راه وجود داره : از محیط برنامه نویسی فلش (IDE) یا Flex استفاده کنید بدلیل اینکه استفاده از IDE فلش کار معمول تری است و اکثر برنامه نویس های فلش این کارو انجام میدن پیشنهاد میشه برای شروع از IDE فلش استفاده کنید

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

(دوستان اگر تا اینجا توضیحات صریح و روشن بودن لطفا با تشکر خودتون ما رو با خبر کنید تا 1 ساعت دیگه قسمت دوم قرار بگیرد با قراردادن این تصویر در امضا خودتون مارو حمایت کنید )

attachment.php


پیروز بــــــاشید
 

پیوست ها

  • xaiu3l4ltqzy4j6goek1.png
    xaiu3l4ltqzy4j6goek1.png
    70.6 کیلوبایت · بازدیدها: 180
آخرین ویرایش:

Aliɾeza

Member
اکشن اسکریپت و برنامه نویسی شی گرا :

برنامه نویسی شی گرا ( Object Oriented ) شاید خیلی ترسناک و رسمی به نظر برسه ولی وقتی شما این عبارت رو به صورت خلاصه شده OPP ببینید شاید کمتر بترسید ! خوب کجا بودیم ؟ اها OPP چیست ? در ساده ترین حالت ممکن OPP یک پولوتیک برنامه نویسی و روشی برای نوشتن و ترکیب بندی کد هاست تا ایجاد و نگه داری برنامه برای برنامه نویس آسان تر باشد. برنامه نویسانی که از تکنیک OPP استفاده میکنند برنامه رو مثل یک کله قند به چند قسمت میشکونند و هر قسمت رو برای کار خاصی صرف میکنه ( چای خوردن، خاک قندو... ) :)

اگر به دوران برنامه نویسی عهد پیچ و مهره برگردیم به روشی میرسیم که در آن برنامه ها با استفاده از برنامه نویسی رویه ای ( Procedual ) نوشته میشوند و یعنی برنامه ابتدا شروع و سپس کد های به صورت خط به خط اجرا میشوند تا به پایان برسد. ولی این روش برنامه نویسی اجازه ایجاد برنامه سنگین و پیچده با اینترفیس های گرافیکی ( Graphic User Interface-GUI ) رو نمی داد که اکنون این ویژگی ها به قسمتی مهم در دنیای کامیپوتر تبدیل شده است . یک روش جدید برای برنامه نویسی نیاز بود تا برنامه رو هر چه راحت تر ایجاد کرد و به سادگی از اون پیشتیبانی کرد

اینجا بود که OPP ظاهر شد همون شوالیه با اسب سفید که اومده تا شاهزاده رو نجات بده، OPP یک روش جدید برای ساختار بندی برنامه ها فراهم میکرد و برنامه رو به قطعه های کوچکی به نام ( Object ) تقسیم میکرد و هر کدام از این قسمت ها به صورت جداگانه وظیفه خاصی رو انجام میداد، این قطعه ها باهم ارتباط برقرار میکردند و یک برنامه کامل رو تشکیل میدادند و این روش دارای سه مزیت است :

1) خیلی راحت میتونید یک برنامه رو به قسمت ها کوچیک تقسیم کنید و به سادگی برنامه رو مدیریت کنید

2) میتونید هر وقت دوست داشتید عملکر کرد یک پروژه رو به عهده دیگری بزارید

3) اگر مشکلی بوجود بیاد به راحتی میتونید اونو پیدا کنید و رفع اش کنید ( دیباگ کنید )

همان طور که ممکن است حدس زده باشید این تاپیک درباره اکشن اسکرپیت است و من هم مدتی درباره OPP توضیح دادم، اکشن اسکریپت هم یک زبان برنامه نویسی شی گراست ، وقتی شما درحال نوشتن کد اکشن اسکریپت هستید چه دوست داشته باشید چه نداشته باشید از برنامه نویسی شی گرا استفاده میکند و اکشن اسکریپت 3.0 نیز شما رو مجبور میکنه که از اصول OPP پیروی کنید درحالی که ورژن های قبلی اشکن اسکریپت یعنی 2.0 و 1.0 زیاد درمورد اصول برنامه نویسی شی گرا سخت گیر نبودند پس وقتی در حال یادگیری اکشن اسکریپت 3.0 در این تاپیک هستید برنامه نویسی شی گرا (OPP) رو هم یاد میگرید

تا اینجا کافی هست قسمت سوم تا یکی دو ساعت دیگه قرار داده میشه

پیروز باشید :green:
 
آخرین ویرایش:

Aliɾeza

Member
اضافه کردن اکشن اسکریپت به پروژه ها :

شما میتوانید از 4 روش برای اضافه کردن اکشن اسکریپت به پروژه هاتون استفاده کنید

1) میتونید کد رو درون تایم لاین قرار بدید

2) میتونید کد رو از یک فایل خارجی به پروژه وصل کنید

3) میتونید یک کلاس سند( Document Class ) برای پروژه مشخص کنید

4) میتونید موارد درون کتابخانه رو به کلاس های خارجی وصل کنید


با این روش ها از درس چهارم به بعد آشنا خواهید شد ، خوب میرسیم به پربارترین مبحث و البته مهم ترین محبث بین درس ها دیگه که اگر این درس رو خوب یاد بگیرید بقیه درس ها آسونه ! این درس درباره بازی با متغیر هاست که یکی از مهم ترین مسائل در رابطه با برنامه نویسی هستش و اگر کسی این مبحث رو به خوبی یاد بگیره نه تنها در اکشن اسکریپت بلکه زبان های دیگه مانند : ...,++java,c رو به حوبی مسلط بشه !

دستورات و عبارت ها :

هر چیزی در تمام زبان های برنامه نویسی یا اکشن اسکریپت رو میتونیم به دستورات ( Statements ) قسمت کنیم همانند یک متن که میتونیم اونو مجموعه ای از جملات که کنار هم دیگه قرار گرفتند به حساب بیارم، در اینجا دستورات اکشن اسکریپت رو میبنید :

[CPPS]

var age:Number= 30 ;
trace("age");
if(year-age)<2000){
trace("you were born last millennium.");
}[/CPPS]

این دستورات به نظر متفاوت می رسند اما دارای موراد مشترکی هستند ابتدا واضح تر از همه این است که همه آنها به یک (;) سِمی کالون ختم میشوند این به عنوان خاتمه دهنده دستور ( Statement Terminator ) اکشن اسکریپت شناخته میشود که به کامپایلر اکشن اسکریپت این امکان را می دهد که که بداند دستور در کجا پایان یافته است که مشابه یک نقطه بعد از یک جمله است که اگر نقطه گذاری انجام نشود اولن شما نمی توانید بفهمید جمله کجا تمام شده است و در این صورت در خواندن آن دچار مشکل میشود با اینکه وارد کردن سِمی کالون (;) الزامی نیست ولی توصیه می شود این کارو انجام بدید چون در مواقعی ممکنه کامپایلر انتهای دستور رو درست تشخیص نده درست مثل یک جمله بدون نقطه گذاری صحیح است.

دومین نقطه مشترک این دستورات این است که همه آنها یک فرمان ( Command ) کامل را تشکیل داده اند ( یا شاید تعدادی فرمان ) که همانند یک دستورالعمل برای اکشن اسکریپت می باشد خوب شرح طرز کار دستور از این قراره که :در خطر اول یک متغیر به نام age (سن) تعریف میشه و مقدار 30 به اون نسبت داده میشه، در خط دوم دستور trace میزان سن رو چاپ میکنه و در خط سوم یک شرط تعریف میشه که اگر اون شرط صحیح باشه متن مورد نظر به وسیله دستور trace چاپ میشه !

متغیر چیست ؟

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

درس چهارم انشاال... فردا قرار داده میشه

موفق باشید (چشمام ترکید ) :shock:
 

Aliɾeza

Member
آشنـایی با متغیر ها :

همون طور که در درس قبلی به طور جزئی توضیح داده شد، اگر شما از زبان های برنامه نویسی دیگری استفاده کرده باشید حتما میدانید که متغیر ( Variable ) محفظه ای دارای نام برای نگه دارای اطلاعات مورد استفاده در برنامه است، نوع اطلاعاتی که درون این محفظه قرار میگره توسط نوع داده ( Data type ) متغیر مشخص میشه اگه با این موارد اشنا نیستید مشکلی نیست اکنون اشنا میشد

قبل از اینکه بتوانید از متغیر استفاده کنید باید آن را تعریف یا ایجاد ( Declare ) کنید، خوب بریم یک نگاهی به تعریف متغیر در پایین بندازیمـ

[CPPS]var majidOnline:String;[/CPPS]



خوب به همین راحتی میتونید یک متغیر تعریف کنید حالا براتون خط بالا رو روشن تر میکنم، خوب معنی کد بالا چیه ؟؟! خط بالا با کلمه کلیدی var شروع میشود که به اکشن اسکریپت میگوید شما درحال تعریف یا ایجاد یک متغیر هستید بعد از var یک نام یا مشخصه می آید یعنی majidOnline که یک نام نحصر به فرد برای متغیر در برنامه مورد نظر شماست از این نام برای خواندن یا تغییر متغیر استفاده میشود و شما باید بدانید که زبان اکشن اسکرپیت به بزرگی و کوچکی حروف حساس است
(case sensitive) و دو کلمه majidOnline و majidonline دو متغیر کاملـا متفاوت هستند اگر نام مورد نظر شما بیش از یک کلمه باشه باید اونو به صورت تک کلمه ای بنویسد برای اینکار باید فاصله بین کلمه ها رو حذف کنید و حرف اول اون هارو با حروف بزرگ بنویسد ( MajidOnline ) نامگذاری متغیر ها محدودیت هایی نیز دارد که در درس های آینده توضیح داده میشه و در آخر نوع داده متغیر با استفاده از یک دونقطه ":" (کالن) از نام متغیر جدا میشود که نوع داده در اینجا String تعریف شده است که به رشته ای از کارکتر ها یا چند رشته از کارکتر ها اشاره دارد که در درس بعدی به انوان داده ها می پردازیم​


در درس بعدی ( نسبت دادن به متغیرها ، دریافت مقدار یک متغیر،نامگذاری متغیر ها ) را خواهید آموخت !

خستـــه نباشید !
 
آخرین ویرایش:

Aliɾeza

Member
نسبت دادن به یک متغیر :

خوب حالا یک متغیر دارید، میتونید یک نام یا مشخصه بهش نسبت بدید برای این کار بعد از نام متغیر یک علامت انتساب (یا عملگر نسبت دهی/Assingment Operator) "=" قرار بدید و سپس مقدار رو وارد کنید :

[CPPS]var majidOnline:String;
majidOnline = "هنر های دیجیتالی به زبان پـارسی " ;[/CPPS]



این دستور به فلش پلیر می گوید که رشته متنی "هنر های دیجیتالی به زبان پـارسی" رو دریافت کرده و درون متغییر majidOnline که قبلـا ایجاد شده ذخیره کنه، متوجه شدید که مقدار رشته در کوتیشن مارک (")قرار گرفته است ؟؟ برای مشخص کردن یک رشته از کارکتر ها ار کوتیشن مارک استفاده میکنید که به این حالت یک لیترال رشته ای ( String Literal ) گفته میشود یعنی اینکه شامل دستوراتی که باید توسط فلش اجرا شوند نمی باشد و در حقیقت میتوانید از کوتیشن مارک دوتایی یا منفرد استفاده کنید ( یعنی "" یا '' ) تنها باید این قانون را رعایت کنید که کوتیشن بسته باید همانند کوتشین باز باشد.
برای تعریف متغیر یک راه دیگه هم وجود داره که ساده تر هست البته استفاده از این روش تنها وقتی امکان پذیره که در همان زمان مقدار متغیر تعریف شود و البته این روش کار درک کد رو هم آسون تر میکنه :

[CPPS]var majidOnline:String; ="هنر های دیجیتالی به زبان پـارسی " ;[/CPPS]

دریافت مقدار یک متغیر :

بعد از این که یک متغیر ایجاد کردید میتونید از این متغیر در کد خود( به شرط اینکه بعد از معرفی آن باشد ) استفاده کنید، اگر نتوانید از یک متغیر استفاده کنید متغیر هیچ کاربردی جزء شلوغ کردن کد نداره ( بهتره در ایجاد متغیر ها صرفه جویی کنید سازمان مجید آنلاین ) :green: خوشبختانه میتونید مقدار متغیر رو با استفاده از نام اون در کد خود فراخوانی کنید یعنی نیازی نیست که حتما مقدار مورد نظر رو ذکر کنید کافیه فقط نام اون متغیر رو توی کد خودتون قرار بدید :

[CPPS]var majidOnline:String= "هنر های دیجیتالی به زبان پـارسی" ;
;(trace (majidOnline[/CPPS]

در اینجا یک دستور به مثال قبلی اضافه شده میتونید ببینید که متغیر majidOnline هم وجود داره اما شاید براتون سوال پیش بیاد "کار دستور trace چیه ؟! دستور trace نام یک تابع است که قسمتی از فریم ورک فلش بوده و از اون برای نمایش اطلاعاتی در پنل Output در محیط فلش یا Console در محیط flex استفاده میشه ( از اینجا به بعد من فقط به صورت کلی از پنل Output نام می برم که برای دوستانی که از flex builder معادل Console است ) وارد جزئیات نمیشم چون در درس ها بعدی توابع به صورت کلی بررسی خواهند فقط همین قدر بدونید که اون ها قطعه ها قابل استفاده مجدد کد هستند که میتوانید با استفاده از اون ها و یک جفت پرانتز و اطلاعاتی را که تابع میخواهد را درون یک جفت پرانتز در اختیارش قرار دهید .

نـام گذاری متغیر ها :

قبل از اینکه متغیر ها رو با نام های اشتباه ایجاد کنید ، باید مواردی رو درباره نامگذاری آنها به شما توضیح بدهم، سه چیز هستند که باید هنگام نامگذاری متغیر ها رعایت شوند یکی از آن ها ضروری است و دوتای دیگه توصیه است که از سال ها تجربه ی برنامه نویسان بدست اومده :

1) متغیر تنها شامل حروف، رقم ها و کارکتر خط پایین (_) / Underline و علامت دلار می باشد

2) با یک عدد شروع نمیشوند

3) نباید جزء کلمات کلیدی اکشن اسکریپت باشد

4) باید منحصر بفرد باشد


نکته : با اینکه اکشن اسکریپت این اجازه رو به شما می دهد که برای نامگذاری از روش دلخواه خودتان استفاده کنید ولی پرکاربردترین روش در دنیای اکشن اسکریپت روش حروف شتری ( Camel Case ) است که در این روش اولین حرف نام متغیر با حروف کوچک نوشته میشود و اولین حرف کلمه ها بعدی با حروف بزرگ نوشته میشوند :

[CPPS]majidOnlineForums[/CPPS]

خسته نباشید
 

Aliɾeza

Member
آشنایی با انواع داده ها :

اکشن اسکریپت 3.0 نیز مانند تمام زبان های برنامه نویسی دارای تعدادی انواع داده ( Data Type ) است که با نام انواع داد های اصلی ( Primitive Data Type )شناخته میشن، تمام انواع داده ها در اکشن اسکریپت با این نام شناخته
میشوند خوب پس من استفاده از این نوع داده ها رو توضیح میدم :

نوع دادهچیزی که مشخص می کند
Stringیک کارکتر یا رشته از کارکترها
Booleanدرست یا غلط ( ture or false )
intکل اعداد صحیح مثبت و منفی
uintکل عددهای صحیح بدون علامت ( مثبت )
Numberکل عددهای مثبت و منفی و عدد های حقیقی ( اعشاری)
*نوع داده مشخص نشده

نوع داده String :

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

"MajidOnline" ( رشته از کارکتر ها ) | "Majid" ( یک کارکتر)

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

نوع داده Boolean :

از این نوع داده برای مقدار های منطقی استفاده میشه، درست یا غلط ( ture or false ) به طور مثال شما میخواهید یک برنامه بنویسد که درون یک اتاق یک کلید روشن و خاموش کردن چراغ وجود داشته باشد میتونید مقدار رو درون یک متغیر از این نوع داده ذخیره کنید :
[CPPS]var lightup:Boolean= ture;[/CPPS]

دانستنی ها : نام Boolean برای احترام به دانشمند آقای (
George Boole ) نامگذاری شد


نوع داده Numeric :

زبان اکشن اسکریپت 3.0 دارای سه نوع داده عددی است : int,uint,Number اکشن اسکریپت 2.0 فقط دارای نوع داده Number بود که مقادری عددی در آن ذخیره میشد که بعضی وقتی مشکل ساز بود ( برای اینکه دوبرابر حافظه مورد نیاز مصرف میشد ) برای حل این مشکل اکشن ----اسکریپت 3.0 دو نوع داده : int ( مخفف Integer ) و uint (مخفف Unsigned Integer یا عدد صحیح بدون علامت) را اضافه نمود که به شما اجازه می دهند که متغیر هایی برای ذخیره اعداد مورد نظر خود ایجاد کنید بدون اینکه مجبور بشید مقدار زیادی از حافظه را اشغال کنید، متاسفانه انتخاب نوع داده تنها به مثبت یا منفی بودن مربوط نیست بلکه به بزرگی و کوچی اعداد بستگی دارد :

نوع دادهمقدار حداقلمقدار حداکثر
int2,147,483,647-2,147,483,647+
uint04,294,967,295

همون طور که می بینید مقدار uint دو برابر int است اما نمی تواند مقادیر منفی را در خود ذخیره کند، پس هنگام انتخاب نوع داده دقت کنید .

نکته : فکر می کنید اگر یک داده منفی را درون یک متغیر با نوع داده uint ذخیره کنید چه اتفاقی می افتد ؟! این امتحان کنید که نصف زیبایی یادگیری به این است که چیزی جدید یاد بگیرید !

اگر بخواهید عددی بزرگتر از 4,294,967,295 یا یک عدد منفی کوچکتر از 2,147,483,648- را ذخیره کنید چطور ؟! اینجاست که باید به سراغ یک متغیر از نوع Number بروید مقادیر کوچک و بزرگ این نوع داده آنقدر بزرگ هستند که نمی تونید اون ها رو تایپ کنید با اینحال برای مشاهده این مقادیر کد زیر رو در اولین فریم فیلم خود قرار بدید و ببنید در پنل Output چه اتفاقی می افته :
[CPPS];(trace("Minimum: " + Number.MIN_VALUE[/CPPS]


اگر نتیجه این کد رو ببیند متوجه خواهید شد که این نوع داده می تواند اعداد واقعا بزگی را دربرگیرد ولی نوع داده Number یک مشکلی دارد که مقدار : 0.1 + 0.2 دقیقا مساوری 3.0 نمیشود بلکه نتیجه معادل این عدد است : 3.0000000000000004 دلیل این مشکل نحوی ذخیره اطلاعات کامپیوتر است که باعث بوجود آمدن چنین مشکلی می شود، این مسئله باعث میشود که برنامه نویسان شبانه روز به دنبال باگ در کد خود برگردند فکرنکنید این مشکل مختص زبان اشکن اسکریپت است بلکه در اغلب زبان های برنامه نویسی پیشرفته مانند : جاوااسکریپت ، PHP , Python,Ruby نیز ظاهر میشود .
در درس بعدی ( استفاده از ثابت ها، انجام عملیات، عملگر های ریاضی ) رو خواهید آموخت

خسته نباشید :green:
 
آخرین ویرایش:

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

بالا