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

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

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


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

با نوشتن این چند خط در یک کلاس اکشن اسکریپت 3 و اتصال آن به فایل برنامه با زدن کلید کنترل و اینتر در خروجی برنامه چهار بار کلمه Hello world نوشته شده و هر بار یک نقطه به انتهی آن افزوده می شود.


کاربرد کلمه 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 ;    }

display list

لیست نمایش یا Display List چیست ؟

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



var redCircle:Shape = new Shape();
redCircle.graphics.beginFill(0xFF0000);
redCircle.graphics.drawCircle(50, 50, 50);
this.addChild(redCircle);

var greenCircle:Shape = new Shape();
greenCircle.graphics.beginFill(0x00FF00);
greenCircle.graphics.drawCircle(75, 75, 50);
this.addChild(greenCircle);

var blueCircle:Shape = new Shape();
blueCircle.graphics.beginFill(0x0000FF);
blueCircle.graphics.drawCircle(100, 100, 50);
this.addChild(blueCircle);

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

برای این کار ابتدا یک نمونه از کلاس shape را با نام دلخواه ایجاد کرده .

و به کمک پروپرتی graphics و تابع beginFill که پارامتر رنگ را دریافت می کند

و تابع  drawCircle که سه پارامتر عددی بترتیب شامل طول و عرض محل نمایش دایره و شعاع دایره را دریافت می کنند لیست نمایش کامل می شود .

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

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

this.addChildAt(blueCircle,0);

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

بدست آوردن زاویه یک خط بین دو نقطه مشخص در فلش (AS3)

در این جلسه روش بدست آوردن زاویه یک خط که در بین دو نقطه مشخص رسم شده را نشان می دهیم .

ابتدا باید کوردینیشن  نقطه شروع و پایان باید دقیقا تعیین گردد .

var from:Point = new Point(0, 0);
var to:Point = new Point(100, 100);
var angle:Number = Math.atan2(to.y - from.y, to.x - from.x);
var difference:Point = to.subtract(from);
var degrees:Number = angle * 180 / Math.PI;
trace (degrees + " degrees");

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

///// output

45 degrees

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

///// output

-135 degrees