Membuat aplikasi tiruan MS Paint (tau kan? software preinstalled di Windows yg dipake buat menggambar, biasa diakses lewat Start Menu > Program > Accessories > Paint) tapi menggunakan Flash, emang bisa yah? wow, dulu pun saya sempat tidak tahu fitur Flash selain yang biasa digunakan untuk membuat CD interaktif, dan baru terbuka matanya setelah melihat demo game menggambar buatan kang Fathah.. wah ternyata Flash itu asyik ya? :D

Kalau kita eksplorasi lagi Flash+tombolF1 (manual helpnya Flash yg cukup lengkap) pada bagian Class MovieClip disana ada penjelasan bahwa Class MovieClip memiliki beberapa fungsi untuk menggambar (diistilahkan dengan Drawing API) seperti: beginFill(), beginGradientFill(), clear(), curveTo(), endFill(), lineTo(), lineStyle(), moveTo(), yang memungkinkan untuk menghasilkan perpaduan kurva, garis, dan warna pada stage hanya dengan menuliskan beberapa baris script.

Sebagai latihan ngoprek, kali ini kita akan coba buat aplikasi corat-coret (menggambar bebas) dengan 4 pilihan warna plus fitur hapus-semua. Pertama-tama, siapkan 4 buah button berbeda warna dengan format instance name ‘<sesuaiWarnanya>_btn’, sebuah movieclip bergambar pensil dengan instance name ‘pensil_mc’, dan sebuah button bergambar penghapus dengan instance name ‘penghapus_btn’.

buat tombol palet warna

pensil

penghapus

Kemudian pada frame utama berikan script berikut:

this.createEmptyMovieClip("canvas_mc", 999);
var isDrawing:Boolean = false;
var warna:String = "0xFF0000";
var mouseListener:Object = new Object();
Mouse.addListener(mouseListener);
Mouse.hide();

mouseListener.onMouseDown = function(){
    canvas_mc.lineStyle(5, warna, 100);
    canvas_mc.moveTo(_xmouse, _ymouse);
    isDrawing = true;
};

mouseListener.onMouseMove = function(){
    if (isDrawing){
        canvas_mc.lineTo(_xmouse, _ymouse);
        updateAfterEvent();
    }
};

mouseListener.onMouseUp = function(){
    isDrawing = false;
};

pensil_mc.onMouseMove = function(){
    this._x = _xmouse;
    this._y = _ymouse;
    updateAfterEvent();
};

penghapus_btn.onRelease = function(){
    canvas_mc.clear();
};

biru_btn.onRelease = function(){
	warna = "0x003366";
}

merah_btn.onRelease = function(){
	warna = "0xFF0000";
}

hijau_btn.onRelease = function(){
	warna = "0x339900";
}

kuning_btn.onRelease = function(){
	warna = "0xFFFF00";
}

Oprekan ini saya adaptasi dari Flash help manual, untuk contoh source .FLA yg udah jadinya bisa didownload di http://www.box.net/shared/i6argdxhmq. Setelah dipublish, hasilnya kurang lebih akan seperti demikian:

hasil

Memang ini masih terlalu sederhana, baru sekadar membuat fitur corat-coret, karena itu selamat mempelajari lebih dalam dan silakan lengkapi kekurangan fitur-fiturnya untuk membuat tiruan MS Paint yang sempurna. 8)



4 Responses to “Memanfaatkan Fitur Drawing API Pada Flash”  

  1. 1 d4nief

    kang buat AS 3 gimana?

  2. @d4nief
    versi AS3 dan professionalnya pelajari ini aja: http://active.tutsplus.com/tutorials/games/create-a-basic-drawing-application-in-flash/

  3. 3 Arief adi widodo

    Bang, faisal….terima kasih atas inspirasi ilmunya……
    saya mau tanya bagaimana kalo action buat tombol penghapus untuk sebagian gambar saja…
    bagaimana biar space canvasnya diatur biar tidak mencoret-coret di space yang lain, dicontohnya bang faisal kan tombol pensilnya bisa mencoret permukaan tombol…
    pensilnya biar ada di atas coretan bagaimana bang?
    kalo menyimpan data dalam bentuk gambar bgmana caranya yaa?
    setau saya dengan sharedobject hanya untuk data teks… nah kalo data gambar bgmana bang
    kalo tombol fill color bgmana bang?
    terima kasih…

  4. 4 Arief adi widodo

    saya pake macromedia flash, bang


Leave a Reply