دانلود نرم افزار - آموزش سی شارپ
دانلود نرم افزار - آموزش سی شارپ

دانلود نرم افزار - آموزش سی شارپ

کاربرد کلمه this در اکشن اسکریپت 3

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

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

حتماً تا کنون با مووی کلیپ هایی که با نام های سریالی نام گذاری شده اند مواجه شده اید . این نوع نام گذاری برای چنین مواقعی کاربرد دارد . کافی است شما از یک آرایه که نام تمام مووی کلیپ ها در آن نوشته شده و همچنین از یک حلقه for استفاده کنید. مثلاً اگر ده مووی کلیپ با نام های m1 تا m10 داشته باشید برای چرخش همه آنها به اندازه 45 درجه به روش زیر از یک آرایه ، یک حلقه for و از کلمه کلیدی this به شکل زیر استفاده می کنیم .

var myAry:Array = [m1,m2,m3,m4,m5,m6,m7,m8,m9,m10];

for(var  i:uint = 1 ; i<10 ; i++)

{    this["m"+i].rotation += 45 * i ;    }

رفتن به فریم دلخواه در اکشن اسکریپت 3

در اکشن اسکریپت 3 اگر بخواهیم برای انجام کاری از یک دکمه استفاده کنیم ، باید مراحل زیر را انجام دهیم

ساخت یک تصویر دلخواه بعنوان یک دکمه این تصویر هر شکلی می تواند باشد.

تبدیل شکل مورد نظر به یک مووی کلیپ . با زدن کلید اف 8 بدون انجام این کار استفاده از شکل بعنوان دکمه میسر نمی باشد

دادن یک instance name به این مووی کلیپ

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

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

با نگاه به تصویر زیر متوجه می شویم که سند ما دارای دو فریم می باشد که با کلیک روی دکمه btn به فریم دوم می رویم .

دستور stop خط اول نیز برای این است که برنامه در فریم اول باقی بماند.

البته یک تذکر مهم در اینجا لازم است . سعی کنید که همیشه برای رفتن به یک فریم از شماره آن استفاده نکنید یعنی دقیقاً کاری که ما اینجا کرده ایم . برای انجام این کار بهترین روش نام گذاری فریمهایی است که قصد رفتن به آن را دارید. برای این کار بهتر است یک لایه اضافی در بالای لایه ها بسازید و فریم های مورد نظر را نام گذاری کرده و به روش زیر لغزنده را به آنها منتقل سازید.   

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

کنترل مووی کلیپ از درون کلاس در اکشن اسکریپت 3

با بررسی یک کلاس ساده در اکشن اسکریپت 3 که در آن می توانیم تمام ویژگیهای یک مووی کلیپ را کنترل کنیم اصول کار با کلاس ها را فرا می گیریم.

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

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

در خط اول که عمل Import انجام می گیرد توابعی که فلش برای انجام کار به آنها احتیاج دارد را بار گذاری می کند .یعنی به فلش می گوئید که تمامی آنچه که برای کار با مووی کلیپ ها می باشد را در اختیار برنامه بگذار.

در خط بعدی نیز با استفاده از کلمه extends  از سیستم می خواهیم که هر آنچه که یک کلاس مووی کلیپ دارد مووی کلیپ ما نیز به ارث ببرد .

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

تعاملی ساختن دکمه در اکشن اسکریپت 3

همان طور که قبلاً گفته شد تمام کدها در اکشن اسکریپت 3 یا در فریم های برنامه نوشته می شوند و یا در یک فایل متنی جداگانه به نام کلاس و با پسوند as.  و دیگر خبری از نوشتن کد درون هیچکدام از آبجکت های موجود در فیلم وجود ندارد و اساساً برنامه چنین اجازه ای را به شما نداده و هنگام انتخاب یک آبجکت ، درون پنل اکشن یک پیام اخطار نوشته می شود .

در جلسات اولیه از کدهایی که درون فریم کلیدی های برنامه نوشته می شوند نمونه می آوریم .و فعلاً کاری به نوشتن کلاس ها نداریم تا جلسات بعدی البته ناگفته نماند که تمام آن دسته از کدهایی را که در هر کلاسی نوشته می شوند را می توان در فریم ها نیز نوشت و هیچ مانعی وجود ندارد . در این جلسه نشان می دهیم که چگونه یک آبجکت و یا دکمه شما (Mybutton) روی استیج به کلیک موس بی تفاوت نبوده و از خود حساسیت نشان دهد و بتواند مثلاً (Myfunc) را انجام دهد.

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

Mybutton.addEventListener(MouseEvent.CLICK, Myfunc);
function Myfunc(event:MouseEvent):void
{
    /// دستورات شما اینجا نوشته می شود
}