Page 1 of 3 123 LastLast
Results 1 to 10 of 25

Thread: waktu kuis dan koreksi benar

  1. #1
    veezones is offline Laskar Babaflash
    Join Date
    Aug 2011
    Posts
    56

    Default waktu kuis dan koreksi benar

    master flash mw tnya dunk..
    q kan bkin kuis soal random
    masalahnya :

    1. klo mau di hsil akhir dksih tau wktu mngerjakan soal na gmn ya?
    2. cara buat nampilin soal yg dijawab salah n koreksi jawaban yg benar na gmna ya?

    q uda bkin soal random pilihan ganda, ada 20 soal tpi cuma 10 soal yg tmpil..

    mohon bntuan na ya..

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

    Default

    Quote Originally Posted by veezones View Post
    master flash mw tnya dunk..
    q kan bkin kuis soal random
    masalahnya :

    1. klo mau di hsil akhir dksih tau wktu mngerjakan soal na gmn ya?
    2. cara buat nampilin soal yg dijawab salah n koreksi jawaban yg benar na gmna ya?

    q uda bkin soal random pilihan ganda, ada 20 soal tpi cuma 10 soal yg tmpil..

    mohon bntuan na ya..
    jika dituliskan script yg ada, akan lebih mudah membantunya (kalau solusinya gampang tapinya)
    lbh baik lagi kalau ada fla-nya

    utk waktu bisa pakai getTimer atau manual berdasarkan fps swf. ketika game over, tampilkan waktu yang ada
    utk jawaban salah benar bisa ditampung di array

  3. #3
    veezones is offline Laskar Babaflash
    Join Date
    Aug 2011
    Posts
    56

    Default

    saya pake skrip ini utk random na :

    benar = 0;
    salah = 0;
    skor = 0;

    total_frame = 21;
    array_frame = [];
    for (i=2; i<=total_frame; i++) {
    array_frame.push(i);
    }

    array_frame.sort(function () {
    return random(2) ? 1 : -1;
    });
    jumlah_frame = 10;
    swf na saya attach dsini..
    klo fla na ada di link ini : http://www.4shared.com/file/KddUJVKR/kuis.html

    mohon petunjuknya..
    Attached Files Attached Files

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

    Default

    Di frame layer action, copy paste kode timer dan fungsi cek jawaban di bawah ini:

    /////////TIMER/////////////////


    /////////TIMER DG GETTIMER() ///////////////
    ////// Buat dynamic text di frame akhir, frame ke-22 //////////
    ////// isi variabel bernama "waktu" //////////////////
    startTime = getTimer();
    onEnterFrame = function () {
    elapsedTime = getTimer()-startTime;
    elapsedHours = Math.floor(elapsedTime/3600000);
    remaining = elapsedTime-(elapsedHours*3600000);
    elapsedM = Math.floor(remaining/60000);
    remaining = remaining-(elapsedM*60000);
    elapsedS = Math.floor(remaining/1000);
    remaining = remaining-(elapsedS*1000);
    elapsedH = Math.floor(remaining/10);
    if (elapsedHours<10) {
    hours = "0"+elapsedHours.toString();
    } else {
    hours = elapsedHours.toString();
    }
    if (elapsedM<10) {
    minutes = "0"+elapsedM.toString();
    } else {
    minutes = elapsedM.toString();
    }
    if (elapsedS<10) {
    seconds = "0"+elapsedS.toString();
    } else {
    seconds = elapsedS.toString();
    }
    if (elapsedH<10) {
    hundredths = "0"+elapsedH.toString();
    } else {
    hundredths = elapsedH.toString();
    }

    _root.waktu = hours+" jam "+minutes+" menit "+seconds+" detik";
    };
    /////////TIMER DG SETINTERVAL() ///////////////
    ////// Buat dynamic text di frame akhir, frame ke-22 //////////
    ////// isi variabel bernama "totwaktu" //////////////////
    dtik=0;
    function hitung() {
    dtik++
    jam2 = Math.floor(dtik/3600)
    mntx = Math.floor(dtik/60)
    mnt2 = mntx % 60;
    dtk2 = dtik % 60
    totwaktu=jam2+" jam "+mnt2 + " menit " + dtk2 +" detik";
    }
    waktyu = setInterval(hitung,1000);
    ////// CEK BENAR SALAH /////////////
    ///////// FUNGSI TAMPILKAN JAWABAN BENAR DAN SALAH ///////////////
    ////// Buat mc bernama instance "cek", letakkan di sebelah jawaban yang benar //////////
    ////// isi mc "cek" adalah animasi tanda benar //////////////////
    function ceking() {
    if (oke) {
    benar +=1;
    skor +=10;
    trace("benar");
    setTimeout(lanjut, 500);
    oke=false;
    }
    else {
    trace("salah");
    salah +=1;
    cek.play();
    setTimeout(lanjut, 2000);
    oke=false;
    }
    }

    function lanjut() {
    if (jumlah_frame>=0) {
    jumlah_frame--;
    gotoAndStop(array_frame[jumlah_frame]);
    }
    if (jumlah_frame<0) {
    gotoAndStop(22);
    }
    }
    ///////////////////

    ganti kode di button

    on (release) {
    salah += 1;

    if (jumlah_frame>=0) {
    jumlah_frame--;
    gotoAndStop(array_frame[jumlah_frame]);
    }
    if (jumlah_frame<0) {
    gotoAndStop(22);
    }
    }


    menjadi:

    on (release) {
    oke=true; // oke=false utk button dg jawaban salah
    ceking();
    }


    Keterangan:

    Fungsi timer sudah jelas, jika belum silakan tanya di sini.
    Pilih saja mau yg setInterval atau getTimer()

    Fungsi cek jawaban punya logika seperti ini:

    Jika button salah diklik
    .....variabel oke is false
    .....jalankan fungsi ceking
    ..........tambah 1 variabel salah
    ..........jika oke is false, maka animasi tanda muncul di sebelah jawaban yg benar
    ..........jalankan fungsi lanjut(). ini menunggu 2 detik sebelum menuju frame pertanyaan random berikutnya
    ...............///tujuan menunggu 2 detik adalah agar animasi selesai dulu baru ke frame pertanyaan berikut. set fps 24 atau 20. jika fps kecil, tambahkan setTimeout jadi lebihlama

    Jika button benar diklik
    .....variabel oke is true
    ..... tambah 1 variabel benar
    ..... tambah skor 10
    ..... jalankan fungsi lanjut(). karena tidak ada animasi "cek" yang dijalankan, silakan ke frame random dalam 1/2 detik berikutnya


    semoga bisa dimengerti
    Last edited by 42Unregistered; 11-02-2011 at 06:09 PM.

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

    Default

    kelupaan:

    untuk mengghentikan timer, di frame ke-22 tambahkan kode:

    ////menghapus onEnterFrame fungsi getTimer////
    delete _root.onEnterFrame;

    ////menghapus setInterval/////////
    clearInterval(waktyu);

    dengan begitu, di dynamic text akan tertera waktu yang terpakai

    oh iya, tidak perlu cross posting di banyak forum. jika ada yg bisa membantu, pasti akan dibantu

  6. #6
    veezones is offline Laskar Babaflash
    Join Date
    Aug 2011
    Posts
    56

    Default

    yuppy.. yg waktu mengerjakan soal uda bisa..

    untuk yg cek jawaban benar salah.. hmmm.. sbenarnya bgini mksud q..

    kalo di akhir (frame ke-22) ada pilihan buat melihat jawaban yang dijawab salah apa aja, trus bisa lihat penyelesaian jawaban yang benar gmna ya? hohoho..

    maaf ya.. mohon bantuannya..

  7. #7
    veezones is offline Laskar Babaflash
    Join Date
    Aug 2011
    Posts
    56

    Default

    oia skalian tnya 1 lg ya om.. D

    kalo mau mengurutkan skor tertinggi berdasarkan skor ma waktu mengerjakan soal gmna ya??

    jadi klo skornya sama, tpi wktunya lebih cepat, maka dia yg jd no 1.

    maaf klo trlalu bnyak tnya.. mkasih bnyak sebelumnya..

  8. #8
    42Unregistered is offline Flash Geek
    Join Date
    Nov 2008
    Posts
    790

    Default

    ************************************************** **
    Soal menunjukkan jawaban yang salah dan penyelesaiannya....
    ************************************************** **

    sebenarnya, struktur aplikasi kuis kamu tidak efisien. bisa lebih efisien kalau hanya punya 1 button generik utk setiap jawaban daripada setiap jawaban dijadikan button

    case:
    ada pilihan buat melihat jawaban yang dijawab salah apa aja, trus bisa lihat penyelesaian jawaban yang benar


    solusi:
    untuk melihat jawaban yang salah, tampung jawaban yang salah dalam array.
    apa yang ditampung? bisa macam2, bisa string jawabannya, bisa string huruf jawaban (a, b, c, d)
    tapi melihat struktur koding kamu dan frame-nya random, sebaiknya tampung nomor frame-nya saja.

    buat array utk menampung jawaban salah.
    saat button jawaban diklik, push nomor frame di mana button berada ke array

    jwbsalah=[];

    function ceking() {
    if (oke) {
    // di sini kode utk yg benar
    }
    else {
    slh=this._currentframe;
    jwbsalah.push(slh);

    }
    }

    * function ceking() di sini hanya memuat kode yang perlu ditambahkan agar lbh jelas

    di frame ke-22, coba masukkan kode "trace(jwbsalah);"

    misalnya, yang dijawab salah adalah pertanyaan di frame 5, 4, 9, 1
    maka hasil trace adalah: 5,4,9,1

    kemudian kita perlu menggunakan isi array jwbsalah untuk menampilkan penyelesaian atas pertanyaan di frame itu.

    buatlah movieclip yang berisi penyelesaian jawaban yg benar tiap-tiap pertanyaan. nama instance-nya bisa dibuat berdasarkan awal frame pertanyaan, yakni 2.

    jadi akan ada mc "2", "3"... "21" di library.
    buat linkage id, yg otomatis akan bernama sama: "2", "3"... "21".

    sekarang kita perlu menampilkan setiap mc penyelesaian sesuai nomor frame yang salah.
    jika jawaban yang salah ada di frame 5,4,9,1 maka mc penyelesaian "5", "4", "9", "1" yang akan muncul sewaktu tombol "lihatsolusi" diklik.

    buat button "lihatsolusi" di frame ke-22.
    isi kodenya:

    on(release) {
    for(i=0; i<jwbsalah.length; i++) {
    _root.attachMovie(jwbsalah[i], "salah"+i, 100+i);
    _root["salah"+i]._x=20+(_root["salah"+i]._width*i);
    _root["salah"+i]._y=100;
    }
    }


    jwbsalah.length itu jumlah jawaban yang salah di array jwbsalah. dalam contoh ini adalah 4 buah.
    dengan iterasi kita attachmovie.

    jadi ketika button "lihatsolusi" diklik,
    di _root akan di attach mc dg id "5", "4", "9", "1". depth-nya dibuat di atas 100.

    di _root, mc ini menjadi bernama "salah0", "salah1", "salah2", "salah3".

    berikutnya adalah posisi x y masing-masing mc salah tsb.
    kode _root["salah"+i]._x=20+(_root["salah"+i]._width*i); untuk membuat jarak agar mc-mc itu tidak tumpang tindih.

    *warning: jika ukuran mc penyelesaian besar, dan jawaban yang salah ada banyak, pasti stage tidak cukup untuk menampilkan semua mc penyelesaian sekaligus.

    solusi: buat banyak button menurut frame yang ada. jadi misalnya yang salah 5,4,9,1 maka otomatis akan muncul button 5,4,9,1 di frame- ke-22.
    metodenya sama saja, pakai attachmovie.
    jika button itu diklik maka akan memuat mc penyelesaian sesuai nomor frame. dan buat button close.

    itu dasarnya. semoga bisa diaplikasikan.

    Quote Originally Posted by veezones View Post
    oia skalian tnya 1 lg ya om.. D

    kalo mau mengurutkan skor tertinggi berdasarkan skor ma waktu mengerjakan soal gmna ya??

    jadi klo skornya sama, tpi wktunya lebih cepat, maka dia yg jd no 1.

    maaf klo trlalu bnyak tnya.. mkasih bnyak sebelumnya..
    mengurutkan ranking tertinggi berdasarkan skor dan waktu bisa lebih mudah jika memakai timer metode getTimer() yg sebelumnya sudah dipost.

    elapsedTime dalam kode itu akan menunjukkan angka unik 1/1000 detik.
    tambahkan saja elapsedTime dengan skor.

    misalnya
    waktu pengerjaan pemain 1 = 12786 (atau 12,78 detik)
    waktu pengerjaan pemain 2 = 12700 (atau 12,7 detik)
    skor sama-sama 210 (21 soal dijawab benar semua)

    maka
    ranking=elapsedTime+skor;
    ranking pemain1" 12786 +210= 12996
    ranking pemain2: 12700 +210= 12910

    jadi lebih mudah mengurutkannya.

    persoalannya: kamu bisa membandingkan skor pemain1 dan pemain2 jika menyimpan setiap skor pemain.
    coba pelajari menyimpan skor dengan sharedObject atau dengan PHP+MySQL.
    tanpa itu skor pemain tidak akan bisa disimpan dan dibandingkan.
    Last edited by 42Unregistered; 11-04-2011 at 02:00 PM.

  9. #9
    veezones is offline Laskar Babaflash
    Join Date
    Aug 2011
    Posts
    56

    Default

    Aq menambahkan scipt dibawah ini ke dalam setiap button pilihan jawaban a, b, c, dan d.

    jwbsalah=[];

    function ceking() {
    if (oke) {
    }
    else {
    slh=this._currentframe;
    jwbsalah.push(slh);
    }
    }
    kemudian di frame 22 aq tampilkan dg "trace (jwbsalah);"

    tapi kok ndak muncul apa2 ya, kosong..
    saya coba dengan dynamic text di frame 22 juga ndak muncul jawaban yg salah..

    apa mungkin aq ada salah mengaplikasikannya?


    untuk masalah high score sudah teratasi dengan Shared Object

  10. #10
    42Unregistered is offline Flash Geek
    Join Date
    Nov 2008
    Posts
    790

    Default

    Quote Originally Posted by veezones View Post
    Aq menambahkan scipt dibawah ini ke dalam setiap button pilihan jawaban a, b, c, dan d.



    kemudian di frame 22 aq tampilkan dg "trace (jwbsalah);"

    tapi kok ndak muncul apa2 ya, kosong..
    saya coba dengan dynamic text di frame 22 juga ndak muncul jawaban yg salah..

    apa mungkin aq ada salah mengaplikasikannya?


    untuk masalah high score sudah teratasi dengan Shared Object
    bukan begitu.

    ini di layer "action"

    jwbsalah=[];

    function ceking() {
    if (oke) {
    benar +=1;
    skor +=10;
    lanjut();
    oke=false;
    }
    else {
    salah +=1;
    lanjut();
    oke=false;
    slh=this._currentframe;
    jwbsalah.push(slh);

    }
    }

    function lanjut() {
    if (jumlah_frame>=0) {
    jumlah_frame--;
    gotoAndStop(array_frame[jumlah_frame]);
    }
    if (jumlah_frame<0) {
    gotoAndStop(22);//ganti jadi gotoAndStop("final");
    }
    }

    kode di button a.b,c,d kan intinya ngasih skor sama ngelanjutin random frame, nah itu sudah dimodifikasi dan dipindahkan ke kode di frame menjadi fungsi ceking() dan lanjut()
    sehingga kode di button hanya:

    on(release) {
    oke=false;//ganti menjadi oke=true utk button dg jawaban benar
    ceking();
    }

    agar lebih gampang dimengerti dan dites hasilnya, pangkas saja frame-nya menjadi 6. hanya 4 pertanyaan, dan frame akhir kasih label "final" saja.

    coba bentar gue modif swf-nya...
    Last edited by 42Unregistered; 11-04-2011 at 09:42 PM.

Page 1 of 3 123 LastLast

Similar Threads

  1. waktu kuis dan koreksi benar
    By veezones in forum ActionScript 1.0/2.0
    Replies: 3
    Last Post: 11-05-2011, 08:35 PM
  2. waktu kuis n koreksi benar
    By veezones in forum Beginner
    Replies: 0
    Last Post: 11-01-2011, 07:26 PM
  3. waktu soal n koreksi benar
    By veezones in forum Beginner
    Replies: 0
    Last Post: 11-01-2011, 07:25 PM
  4. cara export movie yang benar di flash 8
    By lutfia1313 in forum Beginner
    Replies: 4
    Last Post: 07-05-2011, 10:21 AM
  5. Replies: 15
    Last Post: 05-04-2011, 06:48 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
  •