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

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

تولید و تکثیر مووی کلیپ به تعداد دلخواه

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

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

در این فایل شما روش تغییر رنگ یک مووی کلیپ و تکثیر یک مووی کلیپ به تعداد لازم و همچنین تعیین محلی برای ایجاد آن مووی کلیپ را فرا خواهید گرفت.

خط اول تا چهارم تولید دو رنگ دلخواه.

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

در خطوط ششم و هشتم دو متغیر i و j که بترتیب تعداد مووی کلیپ های موجود در یک ردیف و تعداد مووی کلیپ های موجود در یک ستون می باشند و هر دو با مقدار شش ست شده اند را نشان می دهد.

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

شما می توانید برای ساخت و درک بهتر توضیحات ، فایل مربوطه را از اینجا دانلود کنید.

پس از اجرای فایل باید یک صفحه شطرنجی نمایش داده شود.

ENTER_FRAME

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

چگونه می توانیم.

با افزودن یک گوش دهنده به برنامه . این گوش دهنده را هم می توانید به تنهایی بنویسید و هم می توانید آن را برای استیج خود تعریف کنید.


stage.addEventListener(Event.ENTER_FRAME,onMove);

function  onMove(e:Event):void

{trace("MyText."); }


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

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



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

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

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

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

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

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);

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