ActionScript 3 penuh

eval(“_root.pemegang.klip”+n)._alpha=50;

ActionScript 3 penuh

Di sini, fungsi eval menentukan nilai string dalam tanda kurung pada saat runtime dan mengembalikan objek klip video, sehingga satu baris ini dapat menggantikan 20 (atau 100 atau 1.000) baris berulang kode. Namun, eval telah dihapus dari AS3. Hal ini tidak disukai oleh banyak orang puritan, meskipun saya belum pernah mendengar argumen yang kuat untuk menjelaskan alasannya. Untungnya, solusinya relatif sederhana:

ini[“pemegang”][“klip”+n]._alpha=50;

Kode ini mengasumsikan kode tersebut dieksekusi dalam lingkup _root dan berfungsi karena semua klip video disimpan oleh Flash dalam array dua dimensi.

Yang lebih menjengkelkan lagi adalah penghapusan variabel global sepenuhnya. Sekali lagi, prinsip variabel global tidak disetujui oleh para penganut pemrograman murni, dan saya setuju dengan hal itu mereka memang perlu digunakan dengan hemat, karena mereka duduk di sana menghabiskan memori bahkan setelah mereka tidak lagi menggunakannya diperlukan. Namun, katakanlah Anda ingin menyimpan nama pengguna untuk digunakan di berbagai tempat dalam aplikasi Anda. Apa yang lebih sederhana atau lebih tepat daripada _global.gUserName? Tentu saja, variabel lokal bisa saja dilewatkan dengan merancang fungsi Anda secara hati-hati, namun di dunia nyata, tenggat waktu selalu terlalu singkat sehingga semakin cepat sesuatu dapat dicapai, semakin baik.

Untuk mengatasi hal ini, tambahkan fungsionalitas variabel global ke aplikasi AS3 Anda dengan membuat variabel spesifik kelas untuk tujuan tersebut dan, di dalam kelas itu, membuat variabel objek statis yang kemudian dapat Anda tambahkan properti. Misalnya, saya bisa mendeklarasikan kelas publik baru yang berisi variabel publik bernama nGlobals, seperti:

kelas umum malam hari

{

var publik statis nGlobal: Objek = Objek baru();

}

Kemudian saya dapat mengakses isinya menggunakan sintaks nlightn.nGlobals.gUserName dan menulis baris seperti:

nlightn.nGlobals[“gUserName”] = “John Smith”;

Bagi saya, ini masih terasa seperti omong kosong yang tidak perlu, dan saya tidak bisa mengatakan bahwa saya menantikan proses migrasi. Saya mungkin akan menundanya sampai saya menyelesaikan beberapa proyek di Flex 2, yang pada saat itu saya akan memiliki pemahaman yang lebih baik tentang detail AS3.

Fleksibel dalam bertindak

Saya telah menghabiskan beberapa bulan terakhir mengerjakan produk bernama Virtual World for Collins, yang akan segera tersedia baik sebagai aplikasi web maupun dalam CD-ROM. Ini adalah program pendidikan untuk mendukung pengajaran geografi atau mata pelajaran lainnya yang menggunakan data geografis, yang terdiri dari atlas 3D yang disediakan oleh Xamba (www.xamba.com), ditambah empat bagian tambahan yang dibuat oleh NlightN yang mencakup keterampilan pemetaan, permainan, dan data dunia.

Saya terlibat dengan dua komponen produk ini: kuis acak dan komponen data dunia. Dalam kedua kasus tersebut, kami memilih untuk menyimpan data dalam format XML, karena dua alasan. Pertama, XML memungkinkan kita menyusun data dalam format logis pilihan kita, dan kedua, Flash memiliki built-in Penangan XML yang seharusnya membuat pemotongan dan pemotongan data lebih sederhana daripada membaca di beberapa file teks khusus format. Salah satu kegunaan utama XML adalah untuk menyimpan data Profil Negara yang diurutkan berdasarkan benua, jadi setelah benua dipilih, kotak drop-down berisi nama negara akan muncul dan memilih negara akan mengisi tabel dengan informasi negara tersebut.

Secara umum ada dua cara untuk mencapai hal ini, pendekatan tidak langsung adalah dengan membaca data ke dalam susunan multidimensi, yang dimensi pertamanya mewakili kinerja suatu negara. posisi dalam daftar berdasarkan abjad dan dimensi kedua menyimpan item data berbeda tentang negara tersebut – misalnya, profil[2][1] mungkin berisi populasi Angola angka. Cara yang secara teoritis lebih sederhana adalah dengan mengikat kotak drop-down dan tabel ke data XML secara langsung – sebuah pendekatan yang biasanya digunakan oleh bahasa pemrograman seperti Visual Basic atau C# – tetapi implementasi pengikatan data di Flash 8 sangat berantakan sehingga kami akhirnya menggunakan metode susunan.