آموزش action script درس نهم
دوست عزیز سلام
در مورد موضوعی که فرمودید بنده فقط این مطالب رو به صورت دسته بندی شده اینجا قرار می دم و نویسنده اون من نیستم
مراجعه کنید به پست شماره اول من در همین آموزش
در ضمن اگر ممکن هست این پستی رو که زدید پاک کنید تا اینجا شلوغ نشه
ممنون
اینجا رو با نویسنده صحبت کردیم تا قرار بدیم برای اینکه به صورت کامل و جامع بدون نظر دیگران مطالب قرار بگیره
مراجعه کنید به پست اول بنده در همین تاپیک
بسم الله الرحمن الرحيم
به اميد خدا امروز مي خوام ديگه مباحث پايه اي رو تموم كنم. مفاهيمي كه در همه زبانها مشتركه و در زبانهاي مختلف با syntax متفاوت بيان مي شن. تا اينجا سعي كردم كه تمامي مفاهيم رو به صورت ساده بيان كنم و در آينده هم همين قصد رو دارم.
در هر صورت خودتون هم مي دونين بيان كردن تمام ويژگيها و نكات مقدور نيست! من تا جايي كه برام مقدور بود گفتمشون و به عبارتي سرنخ رو دادم دستتون. ديگه تمرين و تكميل كردن اونا با خودتون.
براي اين جلسه هم custom object و مفهوم this و شيوه هاي آدرس دهي رو بيان مي كنم و بحث مفاهيم پايه رو تموم مي كنم.
Custom Objects
يه مقداري كه با actionscript كار بكنين مي فهمين كه با object ها خيلي سروكار دارين. اكثر هويت هاي مستقل مثل button ها (كليدها) ، MovieCLip ها و ... در حقيقت اشيا (object هايي) از كلاس هاي خودشون هستن. هر شي يه سري ويژگيها (properties) مثل عرض شي ، موقعيت اون تو صفحه نمايش و ... داره و همچنين هر شي يه سري خصيصه هايي (Method) داره. متدها كارايي هستن كه يه شي مي تونه انجام بده. مثلا ماشين مي تونه حركت كنه پس حركت كردن يه متد براي ماشينه.
و هر شي مي تونه به يه سري رخدادهايي (event) جواب بده مثل كليك ماوس يا فشار يه كليد از صفحه كليد و ... مثلا اگه ماوس كليك شد يه تابعي رو فراخواني كنه.(تابع ها رو هم كه جلسه قبل توضيح داديم).
نكته: تمامي نكاتي رو كه در مورد
شي گفتيم و خواهيم گفت در بحث شي گرايي (oop) به صورت كامل توضيح خواهم داد. انشاءالله جلسات آينده.
ما مي تونيم بنا به نيازمون خودمون هم يه شي (object) بسازيم و براي اون ويژگيها و خصيصه هايي تعريف كنيم.
مثلا در مثال زير يه شي به نام plane مي سازيم و يه سري ويژگي مثل pitch ، roll ، yaw بهش مي ديم و به اونا هم مقدار مي ديم.
پس فعلا لازمه كه بدونين ما مي تونيم يه شي اي رو بسازيم و يه سري ويژگي براش تعريف كنيم در همين حد فعلا كافيه!!!
در واقع trace آخر عدد 0 رو چاپ خواهد كرد.
بد نيست كه بدونين شي ها مي تونن ورودي براي توابع هم باشن و تابع بنا به نياز از اونا استفاده كنه . مثال زير يه نمونه از اين توابع هست كه شي plane رو كه در بالا ايجاد كرديم به عنوان ورودي بهش مي ديم
خروجي trace ها كه به عهده خودتون! خط آخر رو هم كه مي دونين فراخواني تابعه.
در همين حد فعلا از شي ها بدونين كافيه تا بعدا به صورت مفصل بررسيشون كنيم.
this
هر چي كه بيشتر با actionscript كار كنين به اين نتيجه خواهيد رسيد كه this مي تونه دوست خوب و پركابردي براتون باشه.
this در حقيقت يه شورتكات(shortcut) براي شي يا بردي ( scope) هست كه الان دارين باهاش كار مي كنين.
scope يا برد حوزه اي هست كه يه شي يا متغير در اون معتبره. مثلا اگه در يك function يه شي يا متغير تعريف كنيم. اون شي يا متغير فقط در حوزه اون function معتبر هستن و به عبارتي زنده (live) هستن و با خروج از آكولاد بسته function اونا از بين مي رن. يا اگه يه مووي كليپ (كه خودش شه هست) تو main تعريف بشه در تمام حوزه main برنامه scope داره.
دو مثال زير همه چيز رو روشن مي كنه:
در مثال اول فرض مي كنيم كه مي خوايم به يه موي كليپ كه در timeline اصلي و يا به عبارتي main برنامه قرار داره دسترسي داشته باشيم. پس this در اينجا به timeline اشاره مي كنه. يعني شما در timeline هستيد و مي خوايد به موي كليپ دسترسي داشته باشيد. پس اينجايي كه الان هستيد timeline هست و مي تونيد this رو timeline فرض كنيد.
و در مثال زير فرض كنين كه الان در حوزه يا برد موي كليپ mc هستين و مي خواين به timeline دسترسي پيدا كنين . بنابراين الان اينجايي كه هستين موي كليپ هست پس this موي كليپ مي شه.
parent يه كلمه كليديه و ميگه از اينجايي كه هستم يه سطح برو بالاتر. پس چون mc داخل timeline هست و this الان موي كليپمونه با parent يه سطح از موي كليپ بالاتر مي ريم و مي رسيم به timeline.
مثال زير رو ببينيد:
پس با يه كم دقت متجه مي شيم كه مثال بالا به width تايم لاينمون دسترسي داريم. خط آخر رو يه trace بگيرين متوجه مي شين كه مقدار پهناي timeline پروژتون رو نشان مي ده.
نكته: اين مفهوم رو هم در مثالهاي درسهاي بعد بيشتر باهاش كار خواهيم كرد.
شيوه هاي آدرس دهي در actionscript :
مانند سيستم عامل و وب سايت در actionscript هم دو نوع آدرس دهي داريم آدرس دهي مطلق ( Absolute) و آدرس دهي نسبي (Relative).
در دنياي واقعي مثلا براي آدرس دهي يه بقالي همين دو روش رو داريم:
1) مطلق:
-سلام داداش
- سلام عليكم
- ببخشيد آدرس بقالي آقا كريم كجاست؟
- ببين برادر شما مي رين بلوار شهيد مطهري - كوچه لاله - ابتداي كوچه
2) نسبي:
-سلام داداش
- سلام عليكم
- ببخشيد آدرس بقالي آقا كريم كجاست؟
- آقا
از همينجا (الان تو بلوار شهيد مطهري وايسادن!) مي ري كوچه لاله ، بقالي ابتداي كوچست!
همونطور كه ديدن در آدرس دهي دوم گفت از همينجا كه هستين . پس آدرس رو نسبي (نسبت به بلوار شهيد مطهري) داد. در دنياي مجازي كامپوتر هم همينطوره.
دو روش آدرس دهي و معادل اونا رو تو ويندوز، مكينتاش و وبسايت مي بينيد. فقط اينو بدونين كه:
1) mc1 و mc2 دو تا موي كليپ هستن كه mc2 داخل mc1 هست.
2) root در Actionscript3 يعني نقطه صفر پروژمون در فلش. يعني هر چيزي كه به پروژمون اضافه مي كنيم. در هر صورت زير شاخه اي از root خواهد بود. حالا چه مستقيم چه غير مستقيم. مثلا يه موي كليپ مي سازيد و در تايم لاين مي ذاريم كه اون زير شاخه root هست. و يه موي كليپ ديگه مي سازيم و در موي كليپ اولي مي زاريم. موي كليپ دومي زير شاخه اولي و اون اولي خودش زير شاخه root هست. پس موي كليپ دومي نوه ي root هست
3- ما با آدرس دهي مي خوايم به mc2 دسترسي پيدا كنيم.
جدول اول در براي آدرس دهي مطلقه :
اين تصوير از اندازه واقعي خود کوچکتر نمايش داده مي شود. براي ديدن اين تصوير در اندازه واقعي اينجا را کليک کنيد. اندازه واقعي اين تصوير 765 در 79 پيکسل است.
و جدول دوم آدرس دهي نسبي از يه موي كليپ سومي كه خودش داخل timeline اصليه:
اين تصوير از اندازه واقعي خود کوچکتر نمايش داده مي شود. براي ديدن اين تصوير در اندازه واقعي اينجا را کليک کنيد. اندازه واقعي اين تصوير 770 در 71 پيکسل است.
خوب درس امروز و به همراه اون بحث مفاهيم پايه تموم شد فقط ذكر چند نكته رو لازم مي دونم.
1) مطالب اين جلسه براي كسايي كه تازه كار هستين يه كم ثقيله! ولي تازه كارا مطمئن باشن در ادامه و در مثالهاي آينده كاملا به اين مفاهيم مسلط خواهند شد. هنوز يه عالمه درس مونده با مثالاي جور واجور
2) از درس آينده كه روي syntax و بحثاي خودactionscript متمركز مي شيم در هر درس حتما مثال پيوستي به همراه سورس خواهيم داشت!
3) اگه برسم مي خوام يه وبلاگ در همين رابطه راه اندازي كنم كه درس ها رو به صورت منظم و خصوصي تر اونجا هم بذارم ولي همچنان نوشتن در majidonline ادامه خواهد داشت.
4) در اولين فرصت ممكن pdf بخش اول مفاهيم پايه اي رو آماده و در پست اول همين تاپيك قرار خواهم داد .
در جلسه بعدي property هاي عمومي و شيوه به كار گيري اونا رو به صورت كلي توضيح خواهم داد.