PDA

نسخه کامل مشاهده نسخه کامل : آموزش دانه هاي برف!



Aminneo
26-07-2006, 16:49
منبع:سايت شايگان!


در روز هاي سرد زمستان تماشا کردن دانه هاي برف از پنجره اتاق و در کنار بخاري لذت زايد الوصفي را ايجاد مي کند پس براي روز مبادا بياييد با هم صحنه بارش برف را در يک فيلم ايجاد کنيم. اگر به بارش برف دقت کرده باشيد، دانه هاي برف با سرعت هاي متفاوتي فرود مي آيند و در حال فرود آمدن چرخش هم دارند.

براي شروع:
1. ابتدا يک دانه برف ترسيم کنيد و آن را به صورت مووي کليپ ذخيره کنيد، سپس يک نمونه از آن در صفحه قرار داده و نام آن را barf بگذاريد.
2. حال اسکريپت زير را به آن اضافه کنيد.




onClipEvent(load){
this._x=Math.random()*550;
this._y=Math.random()*400;
speed=Math.random()*3+3;
drift=Math.random()*2-1;
rotate=Math.random()*6-3;
}
onClipEvent(enterFrame){
this._y+=speed;
this._x+=drift;
this._rotation+=rotate;
if(this._y>400)this._y=0;
if(this._x<0)this._x=550;
if(this._x>550)this._x=0;
}



در قسمت اول با اجرا شدن فيلم فلش مختصات x و y مکاني براي دانه برف در صفحه تعيين مي کنند. متغيرهاي Speed حرکت افقي دانه برف را کنترل مي کنند. در آخر متغير Rotate مقدار دوران دانه برف را مشخص مي کند.


دقت کنيد براي اينکه حرکت دانه برف غير واقعي به نظر نرسد از تابع رياضي Random استفاده شده است. اين تابع عددي را به عنوان ورودي دريافت کرده و براساس آن يک مقدار عددي تصادفي بين صفر و آن عدد ايجاد ميکند. مثلا Math.random()*12 يک عدد بين صفر تا 12 توليد مي کند.
در قسمت دوم در هر بار عبور از مووي کلي÷ مقادير مربوط به آن با توجه به مقادير تصادفي موجود در متغيرهاي قسمت اول تغيير مي کند. از طرفي دانه برف بعد از رسيدن به پايين صفحه به بالاي صفحه و بعد از خروج از يکي از کناره هاي صفحه به کناره ديگر منتقل مي شود.




if(this._y>400)this._y=0;








for (var i = 0; i<50; i++) {
barf.duplicateMovieClip("barf"+i, i);
}





اين اسکريپت 50 دانه برف توليد مي کند و براي اينکار از تابع duplicateMovieClip استفاده مي نمايد. اين تابع يک نمونه کاملا مشابه از مووي کليپي که به آن معرفي شده ايجاد مي کند.
"barf"+i باعث مي شود هر نمنه داراي نام متفاوتي باشد و پارامتر i سطح قرار گيري مووي کليپ را مشخص مي کند. در واقع هر نمونه که در سطح بالاتري باشد روي بقيه را مي پوشاند. استفاده از تابع رياضي random باعث مي شود که هر نمونه مقادير متفاوتي داشته باشد.

Aminneo
26-07-2006, 16:50
سوالي داشتيد در خدمتم!

Elfin-D
27-07-2006, 00:42
سلام
عکسها مشکل داره
لطفا چک کنید
لطفا کد ها رو در تگ کد قرار بدید
مرسی

Aminneo
27-07-2006, 12:43
باشه كدها رو از اين به بعد در تگ كد ميگذارم ولي آ×ه اين كه عكس نداشت!(عكس گريه)

H2O2
29-08-2006, 10:31
دستت درد نكنه امين جان

siadate
08-09-2006, 07:02
با تشكرا زشما دوست عزيز: Aminneo :cool:

ozgor
15-09-2006, 04:25
دستت درد نكنه

ameneh
25-09-2006, 21:47
سلام مرسي
برف جالبي شده ولي چرا يدونه هست .
اين كد رو كه بزاريم فرموديد كه 50 تا برف مي شه ؟
for (var i = 0; i<50; i++) {
barf.duplicateMovieClip("barf"+i, i);
}


ولي اين رو كجا بذاريم؟من هر جا گذاشتم همون يدونه برفه هست؟؟؟!!!
مرسي !

ameneh
29-09-2006, 15:03
جناب مهندس نمي گيد كه جاي دقيق اين كد آخري كجا هست؟؟

Elfin-D
29-09-2006, 23:54
جناب مهندس نمي گيد كه جاي دقيق اين كد آخري كجا هست؟؟
من حس میکنم باید در فریم اصلی گذاشته بشه!
امتحان کنید ببینید جواب میده؟!

ya abbas
30-09-2006, 05:39
سلام
آموزش جالبي بود
ممنون

ameneh
02-10-2006, 23:14
منظورتون كجاست؟
همون فريمي كه كد هاي ديگه رو گذاشتيم؟

Elfin-D
02-10-2006, 23:18
بعله!!!!!!!!

y.f_1416
07-02-2009, 17:14
با عرض سلام
من کردم درست شد ولی دیگه قطع نمیشه چیکار کنم؟؟؟؟؟؟؟؟؟؟