Efek Angin dengan Flash CS3 Math.random ()
Sekarang kita memiliki kepingan salju yang jatuh di Flash kitaR sistem partikel, mari kita sedikit memodifikasi kode ActionScript 3. Serpihan kami hanya jatuh lurus ke bawah. Tapi, kecuali benar-benar tidak ada angin, sebagian besar serpihan bergerak turun dengan miring. Jadi mari kita gunakan beberapa matematika untuk membuat serpihan kita bergerak sedikit ke kanan saat jatuh. Untuk menambahkan lebih banyak realisme, kami ingin jumlah gerakan horizontal berubah karena kepingan salju membuatnya turun ke panggung.

Ingat, bahwa dalam salah satu tutorial kami sebelumnya dalam seri ini, kami menempatkan serpihan pada posisi yang berbeda secara horizontal di bagian atas panggung. Kami melakukan ini dengan menetapkan nilai yang berbeda untuk posisi X untuk setiap serpihan. Jadi dalam tutorial ini, kita dapat menggunakan properti _Snowflake.x yang sama lagi untuk mengontrol gerakan horizontal dalam animasi.

Kedua, ketika kami membuat serpihan kami, kami mengatur posisi X dan Y awal serpihan itu ke angka acak.

_Snowflake.x = Math.random () * 510;
_Snowflake.y = Math.random () * 40;

Kita dapat menggunakan Math.random () yang sama untuk mengontrol jumlah gerakan horizontal acak. Sudahkah Anda menebak apa yang akan terjadi selanjutnya?

Kita tahu bahwa pada setiap frame film Flash kita, kita menyebut fungsi salju turun.

stage.addEventListener (Event.ENTER_FRAME, salju turun);

Fungsi ini meningkatkan properti the_Snowflake.y sebesar 10 untuk setiap frame. Inilah yang menggerakkan serpihan turun panggung.

_Snowflake.y + = 10;

Tapi itu terlalu cepat bagi kita untuk melihat gerakan horizontal halus yang akan kita tambahkan selanjutnya. Jadi, mari kita memperlambatnya sedikit dengan mengubah 10 menjadi 5.

_Snowflake.y + = 5;

Sekarang kita dapat menggunakan kode yang sama untuk memindahkan serpihan secara horizontal ke kanan. Yang perlu kita lakukan adalah mengubah the_Snowflake.y ke_Snowflake.x.

_Snowflake.x + = 10;

Sekarang kepingan salju akan bergerak 10 piksel ke kanan dan 5 piksel ke bawah di setiap bingkai dalam film Flash kami. Tapi, akan lebih realistis jika gerakan horizontal kepingan salju itu lebih acak karena membuatnya turun panggung. Kita dapat melakukan ini dengan mengganti 10 dengan angka acak antara 0 dan 9. Kita akan menggunakan Math.random () untuk melakukan ini.

_Snowflake.x + = Math.random () * 10;

Selanjutnya, kami menambahkan kode baru ini ke fungsi salju turun dan kami mendapatkannya.

if (_Snowflake.y> 370)
{stage.removeEventListener (Event.ENTER_FRAME, salju turun); }
lain
{_Snowflake.y + = 5;
_Snowflake.x + = Math.random () * 10;}

Tapi sekarang kita memindahkan serpihan ke kanan, akhirnya mungkin melampaui sisi kanan layar. Ingatlah bahwa kami menghentikan kepingan salju jika jatuh di bawah panggung.

if (_Snowflake.y> 370)

Kita juga bisa menghentikannya jika melampaui sisi kanan panggung. Mari kita tambahkan itu ke pernyataan kondisional kami. Karena kami ingin animasi berhenti jika salah satu ATAU yang kedua dari kondisi ini benar, kita dapat menggunakan || operator antara kedua kondisi dalam pernyataan if.

if (_Snowflake.y> 370 || _Snowflake.x> 550)

Jika salah satu dari kondisi ini benar, Flash akan menghapus pendengar acara ENTER_FRAME.

Ini kode baru kami.
stage.addEventListener (Event.ENTER_FRAME, salju turun);

var _Snowflake: mcSnowflake;

_Snowflake = new mcSnowflake ();
addChild (_Snowflake);
_Snowflake.x = Math.random () * 510;
_Snowflake.y = Math.random () * 40;

function snowfall (event: Event): void
{
if (_Snowflake.y> 370 || _Snowflake.x> 550)
{stage.removeEventListener (Event.ENTER_FRAME, salju turun); }
lain
{_Snowflake.y + = 5; _Snowflake.x + = Math.random () * 10; }
}


Saat Anda mengirim pesan teks ke film, kepingan salju sekarang akan memvariasikan gerakan horizontal saat jatuh ke bagian bawah panggung. Simpan adegan salju Anda sebagai SnowScene6.fla.

Hak Cipta 2018 Adobe Systems Incorporated. Seluruh hak cipta. Tangkapan layar produk Adobe dicetak ulang dengan izin dari Adobe Systems Incorporated. Adobe, Photoshop, Album Photoshop, Photoshop Elements, Illustrator, InDesign, GoLive, Acrobat, Cue, Premiere Pro, Premiere Elements, Bridge, After Effects, InCopy, Dreamweaver, Flash, ActionScript, Kembang Api, Berkontribusi, Memikat, Flash Catalyst dan Flash Paper adalah [adalah] merek dagang terdaftar [s] atau merek dagang [s] dari Adobe Systems Incorporated di Amerika Serikat dan / atau negara lain.