Apa itu prototype dan bagaimana menggunakannya

Semalam mrpsycho98 dari forum sifoo.com tanya dengan aku bagaimana menggunakan prototype dan cara menggunakanya.

Mengikut pemahaman aku, prototype/_proto_ ialah property atau constructor sesuatu objek/movieclip tuh. Contohnya prototype yang aku masukkan ini:
Code:
///////////////

MovieClip.prototype.tween1 = function(){
this.onEnterFrame = function(){
if(this._alpha

Shared Object – Pengenalan.

Hari ni aku post satu artikel mengenai shared object kat sifoo.com, So kat sini pun aku letak jugak sebagai reference aku.


Apa itu Shared Object?

Sebuah fail SWF boleh menyimpan data (seperti variables, array, XML dan lain-lain objek data) ke dalam hard disk pengguna menggunakan shared object – sama malah lebih powerful dari cookies yang digunakan Web browser.

Ia boleh digunakan untuk menyimpan informasi yang di-generate oleh pengguna semasa fail SWF kita dipaparkan/view contohnya nama, last frame visited, scoreboard dan lain-lain. Shared object juga boleh digunakan oleh SWF di laman web dan standalone projektor.

Cara-cara untuk mencipta Shared Object.

Di sini ialah contoh script untuk mencipta shared object.

Code:
objekSaya = SharedObject.getLocal(”info_yang_disimpan”);

Penerangan :

Jika shared object “info_yang_disimpan” sudah berada di dalam hard drive pengguna, data tersebut akan terus dimasukkan ke dalam objekSaya. Jika “info_yang_disimpan” tidak wujud di dalam hard drive pengguna, ia akan dicipta dan diumpukkan ke objeckSaya. Dan dalam keadaan ini, objekSaya adalah kosong dan tidak mempunyai apa-apa data di dalamnya. Dalam erti kata lain, penggunaan getLocal() akan mencipta shared object yang baru (jika tidak wujud) atau mengambil data dari shared object yang sedia ada.

Dari apa yang anda telah pelajari, nama shared object kali ini ialah “info_yang_disimpan”. Akan tetapi di dalam Action Script, anda tidak boleh terus menggunakan nama tersebut sebagai reference. Ini bermaksud, apabila anda menggunakan objekSaya di dalam Action Script, sebenarnya anda akan refer kepada shared object “info_yang_disimpan” – konsep yang agak rumit untuk difahami tentang bagaimana shared object digunakan di dalam Action Script.

Bagaimana data disimpan?

Data disimpan di dalam shared object menggunakan data property. Sebagai contoh

Code:
objekSaya.data.nama_pengguna = nama_pengguna.text;

Apa yang berlaku ialah variable nama_pengguna (dan valuenya, teks di dalam nama_pengguna text field) akan di simpan di dalam shared object. Anda juga boleh menyimpan keseluruhan objek. Sebagai contoh, jika anda ingin menyimpan array untuk projek anda, sintaknya ialah:

Code:
objekSaya.data.simpanArray = namaArray;

Selain daripada itu shared object juga boleh menyimpan banyak data serentak:

Code:
objekSaya.data.simpanArray = namaArray,
objekSaya.data.simpanXML = namaXML;
objekSaya.data.nama_pengguna = nama_pengguna.text;

Bagaimana untuk memadamkan data?

Cara-cara untuk memadamkan shared object adalah sangat mudah, seperti contoh dibawah:

Code:
objekSaya.data.nama_pengguna = null;

// nama_pengguna text filed akan keluar “undefined”.

Bagaimana untuk “retrieve” data?

Cara-cara untuk memanggil data juga sangat mudah, seperti contoh di bawah:

Code:
nama_pengguna.text = objekSaya.data.nama_pengguna;

// nama_pengguna text filed akan mengambil data yang dipegang oleh objekSaya.data.nama_pengguna.

Bagaimana untuk “Save” data?

skrip untuk “Save” data ialah:

Code:
objekSaya.flush();

//Skrip ini akan bertindak untuk Save semua data objekSaya ke shared object “info_yang_disimpan”.

Di mana Shared Object disimpan?

Semua shared object akan disimpan di dalam hard drive pengguna. Biasanya ia akan disimpan di:

Windows\Application Data\Macromedia\Flash Player\

dan untuk Mac, lokasi nya ialah:

System Folder\Preference\Macromedia\Flash Player\

sebagai contoh, jika anda membuka swf fail dari URL ini:
-http://www.nama_website.com/fun/games/Scooter.swf
dan mempunyai shared object seperti berikut:

Code:
myScore = SharedObject.getLocal(”scoreData”);

shared object tersebut akan disimpan di:

Windows\Application Data\Macromedia\Flash Player\fun\games\Scooter\scoreData.sol

Jika anda menggunakan fail SWF tersebut di-run dari pc pengguna atau local, shared object tersebut akan disimpan di:

Windows\Application Data\Macromedia\Flash Player\www.onSetFocus.net

Embed fonts dalam Flash.

2-3 menjak bulan kebelakangan ini ada satu masalah yang asyik bermain di fikiran aku, maybe semua orang dah tahu tapi aku memang tak tahu: cara2 untuk embed fonts dalam swf. Jadi, kalau kite nak guna dynamic text pakai apa2 fonts yang pepelik dan kemungkinan takde kat pc client, kite bolehlah meng-embedkan fonts tu dalam fail swf kite. Cuma kalau dah fonts pun embed dalam swf, for sure saiz swf kite akan bertambah.
Caranya ialah dekat fonts properties, ada button character, klik kat situ dan pilihlah karekter yang kite nak embedkan dalam swf kite.

onEnterFrame

Semalam time aku tengah carik2 idea untuk design website, aku terfikir pasal masalah yg diutarakan kat forum sifoo.com tentang penggunaan onEnterFrame. Problemnya ikut pemahaman aku, dia nak kontrol movieclip bila sesuatu event tu berlaku. Jadi onEnterFrame tu bukan berlaku pada scene tapi pada movieclip. Jadi solution yg terlintas dalam kepala aku, guna prototype. Tapi since Flash MX 2004 dah support classes, maybe prototype ni dah deprecated. Well, aku masih lagi belajar camne nak guna classes dalam Flash MX 2004. Well, here’s the code.

submenu._alpha = 0;
submenu2._alpha = 0;

/* aku guna prototype untuk handle mc nye action n function. So tweening/enterframe berlaku kat mc bukan kat main time line. */

MovieClip.prototype.tween1 = function(){
this.onEnterFrame = function(){
if(this._alpha0){
this._alpha -=5;
trace(this._alpha);
}
}
}

cinfo.onRollOver = function() {
submenu.tween1();
};

cinfo.onRollOut = function() {
submenu.tween2();
};

cinfo2.onRollOver = function() {
submenu2.tween1();
};

cinfo2.onRollOut = function() {
submenu2.tween2();
};