Results 1 to 6 of 6

Thread: Gimana cara bikin 5 tombol lampu, tapi cuma boleh 2 lampu yang nyala?

  1. #1
    iamdio is offline Anggota BabaFlash
    Join Date
    Dec 2011
    Posts
    3

    Smile Gimana cara bikin 5 tombol lampu, tapi cuma boleh 2 lampu yang nyala?

    Halo! saya mau nanya2 dong master2 flash soal AS3...

    saya kebingungan bgt nih, mohon bantuannya..

    jadi saya mau bikin 5 lampu dengan 5 tombol, masing2 tombol udah bisa saya bikin sehingga lampu itu on/off, dengan cara di dalem masing2 movie clip button, ada 2 codes yang 1 bikin nyala, yg 1 bikin mati. (codesnya ada di dlm movie clip, bukan di root)

    nah saya maunya bikin jika 2 lampu udah nyala, pas saya pencet tombol ke-3, 2 lampu tadi mati, lampu ke-3 yg nyala.. pokoknya cuma boleh 2 lampu yg nyala gt.. gimana ya caranya?

    contoh kondisi:

    Tombol: a b c d e ----------> kondisi awal
    Lampu: () () () () ()

    Tombol: a b c d e -----------> lampu a dan b nyala
    Lampu: (v) (v) () () ()

    Tombol: a b c d e -----------> lampu c ditekan, lampu a dan b mati
    Lampu: () () (v) () ()

    Mohon bantuannya ya.. sampe setress anee...

  2. #2
    42Unregistered is offline Flash Geek
    Join Date
    Nov 2008
    Posts
    782

    Default



    buat mc lampu. taruh di stage. namakan "lampu0", "lampu1"..."lampu5"

    di frame 1, taruh kode ini:

    namabtn=[];
    jlhbtn=5;

    for (i=0; i<jlhbtn; ++i) {
    this["lampu"+i].onRelease = function() {
    nomor=this._name.substr(5,1);
    if (namabtn.length<=2) {
    namabtn.push(nomor);
    _root["lampu"+namabtn[0]].gotoAndStop(2);
    _root["lampu"+namabtn[1]].gotoAndStop(2);
    }
    if (namabtn.length>2) {
    _root["lampu"+namabtn[0]].gotoAndStop(1);
    _root["lampu"+namabtn[1]].gotoAndStop(1);
    namabtn=[];
    namabtn.push(nomor);
    _root["lampu"+namabtn[0]].gotoAndStop(2);
    }
    trace(namabtn);
    }
    }


    Keterangan.

    Ketika mc diklik, maka nama ujungnya (0,1,2.. dst) disimpan di array.
    hanya 2 isi array yang nyala. jika ada 3 isi array, buang isinya dan tambahkan 1 yang terakhir diklik

  3. #3
    iamdio is offline Anggota BabaFlash
    Join Date
    Dec 2011
    Posts
    3

    Default

    wah Thanks bgt!!

    saya udah coba bikin baru kayak yg anda bikin dari awal,, dan copas codesnya juga..

    tapi kok tiap line dibilang error: Access of undefined property

    saya salah dimana ya? saya pake AS3.0, Adobe Flash CS3 Professional..

  4. #4
    42Unregistered is offline Flash Geek
    Join Date
    Nov 2008
    Posts
    782

    Default

    Quote Originally Posted by iamdio View Post
    wah Thanks bgt!!

    saya udah coba bikin baru kayak yg anda bikin dari awal,, dan copas codesnya juga..

    tapi kok tiap line dibilang error: Access of undefined property

    saya salah dimana ya? saya pake AS3.0, Adobe Flash CS3 Professional..
    publish sbg AS2.

    Lupa gak ngeliat utk "AS3"
    Kali aja ada master yg lain bisa bantuin convert ke AS3

  5. #5
    42Unregistered is offline Flash Geek
    Join Date
    Nov 2008
    Posts
    782

    Default



    Oke ini yang AS3

    di stage ada lima mc dg instance name: "lampu0", "lampu1"... "lampu4"

    setiap mc punya dua frame: mati dan nyala (ada stop() di frame

    :::: AS3 ::::

    //kita masukkan nama mc ke dalam array
    //kiat buat array untuk menampung nama mc yang diklik

    var lampu:Array=[lampu0, lampu1, lampu2, lampu3, lampu4]
    var namabtn:Array=[];


    //mc-mc tersebut dlm buttonMode agar bisa diklik
    //ketika diklik akan menambahkan nama button ke dlm array
    //setiap saat mc akan mengecek apakah namanya ada dalam array dg enterframe event

    for (var i:uint=0; i<lampu.length; ++i) {
    lampu[i].buttonMode = true;
    lampu[i].addEventListener(MouseEvent.CLICK, tambaharray);
    lampu[i].addEventListener(Event.ENTER_FRAME, nyalakan);
    }



    //fungsi "tambaharray" ini pertama harus mengecek apakah nama mc sudah ada di dalam array
    //ini untuk menghindari isi array punya dua nama mc yang sama
    // jika tidak ada nama mc, cek apakah isi array masih di bawah 2?
    //jika isinya di bawah atau sama = 2, maka tambahkan nama mc ke dalam array "namabtn"
    // jika isinya di atas 2, maka kosongkan array, setelah kosong baru tambahkan nama mc ke dalam array

    function tambaharray(event:MouseEvent):void {

    if (namabtn.indexOf(event.currentTarget.name) < 0) {
    if (namabtn.length<=2) {
    namabtn.push(event.currentTarget.name);
    }
    if (namabtn.length>2) {
    namabtn=[];
    namabtn.push(event.currentTarget.name);
    }
    }
    trace(namabtn);
    }



    //fungsi "nyalakan" mengecek apakah nama mc yang diklik ada di dalam array "namabtn" urutan 1 dan 2
    // kita hanya perlu menyalakan 2 mc
    //jika namanya ada di array posisi 1 dan 2, maka dia akan ke frame 2, artinya nyala
    //jika tidak, maka di frame 1 saja (mati)

    function nyalakan(event:Event) {
    if (event.currentTarget.name == namabtn[0] || event.currentTarget.name == namabtn[1]) {
    event.currentTarget.gotoAndStop(2);
    } else {
    event.currentTarget.gotoAndStop(1);
    }

    }



    //end


    eh, ini gue lg belajar AS3, jika ada yg kurang oke, tolong master AS3 perbaiki ya...
    Last edited by 42Unregistered; 12-16-2011 at 06:38 PM. Reason: nama fungsi gak pas || event.currentTarget vs event.target

  6. #6
    iamdio is offline Anggota BabaFlash
    Join Date
    Dec 2011
    Posts
    3

    Default

    wah terimakasih banyak!! nanti coba saya praktekkan dulu ehehe thanks ya!

Similar Threads

  1. ask! gimana bikin tombol prev next di video player?
    By leomeizha in forum Flash CS3, CS4, CS5.5 dan Action Script 3
    Replies: 1
    Last Post: 11-26-2011, 01:45 AM
  2. Replies: 2
    Last Post: 11-16-2011, 12:01 PM
  3. Replies: 1
    Last Post: 05-17-2011, 08:40 PM
  4. bikin link di dalam tombol flas gimana?
    By mantox in forum Flash and Database Connectivity
    Replies: 7
    Last Post: 05-19-2010, 11:12 AM
  5. Nah kalo bikin tombol ginian Gimana???
    By wiwis in forum ActionScript 1.0/2.0
    Replies: 5
    Last Post: 04-06-2009, 02:31 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •