หน้า: [1]
 
ผู้เขียน หัวข้อ: แฟลชสำหรับข้อสอบ  (อ่าน 5692 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
ขอถามหน่อยค่ะ

ถ้าต้องการทำแฟลชสำหรับข้อสอบ
โดยอยากให้จับเวลาเป็นข้อละห้าวินาที
โดยถ้าเลือกตอบก็จะเปลี่ยนข้อทันที
แต่ถ้าไม่้เลือกตอบ เมื่อหมดเวลา 5 วินาที
ก็จะเปลี่ยนข้อเองอัตโนมัติ เมื่อครบทุกข้อ
มีการรวมคะแนนให้ด้วย แฟลชแบบนี้มีรูปแบบสำเร็จรูปมั้ยคะ

แล้วมีหลักการทำคร่าวๆยังไงบ้าง ขอบคุณค่ะ  ไหว้
บันทึกการเข้า

คนบางคนเกิดมาเพื่อเป็นแค่ความทรงจำ
ผมไม่แน่ใจนะครับ แต่คาดว่าน่าจะมี
บันทึกการเข้า

지금은 소녀시대 , 앞으로도 소녀시대 , 영원히 소녀시대
- โจทย์ละเอียดยังงี้ไม่มีสำเร็จรูปแน่ๆ ครับ
- หลักการทำคร่าวๆ ต้องถามแฟลชโปรแกรมเมอร์นะ แต่ถ้าตูทำก็คงออกมาประมาณนี้

+ สร้างสคริปต์นับถอยหลังแล้วสั่ง _root.nextframe() ยัดใส่ movieclip ซ่อนไว้ทุกเฟรม เพื่อให้มันนับถอยหลัง
+ แต่ละเฟรมมีโจทย์มีอะไรเสร็จสรรพ ตัวเลือกมี 1 ตัวเลือกที่กดแล้วได้แต้ม นอกนั้นก็ให้ _root.nextframe()
+ เฟรมสุดท้ายให้มันรวมค่าคะแนน
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
เดี๋ยวจะลองปรึกษากะเพื่อนดูจ่ะ
แล้วถ้าติดขัดตรงไหนจะมาถามต่อ  ไหว้

+1
บันทึกการเข้า

คนบางคนเกิดมาเพื่อเป็นแค่ความทรงจำ
ตรงจับเวลา พอมีวิธีแนะนำอยู่ 2 วิธีครับ

คือใช้ onenterframe เพื่อเชกว่าเวลามันผ่านไปครบ 5 วินาทีหรือยัง

หรืออีกวิธีคือใช้ movieclip สร้างความยาวไว้ 5 วินาที
(แล้วแต่ frame per sec ของงานที่น้องสร้างไว้)
แล้ว frame สุดท้าย ก็ค่อยเขียนคำสั่งบวกลบคะแนน และไปยังคำถามถัดไป

และแน่นอนนะครับ ว่าก็ต้องมี event ของปุ่มด้วย
ถ้าเป็น กรณีแรก ให้เคลียเวลากลับมาเป็น 0 ก่อนด้วย
แต่ถ้าเป็น กรณี2 ก็ข้ามไปยังคำถามข้อต่อไปได้เลย

อาจจะมีกรณีอื่นๆอีกนะครับ ที่ทำได้ ฮิ้ววว(แต่ตอนนี้ผมคิดไม่ออก)
บันทึกการเข้า

ก่อสร้างกับทำลาย เหมือนที่ลงมือ ต่างที่การกระทำ
อยากรู้เหมือนกัน!!! เคยพยายามอ่าน Help ในหัวข้อ SetInterval แล้ว แต่ไม่รู้เรื่อง ผู้รู้กรุณาช่วยทีครับ  ไหว้ ไหว้
บันทึกการเข้า

50 levels avaliable, 22 secrets levels avaliable :P
ใช้ setInterval ให้ทำงานทุกๆ 5 นาที โดยเปลี่ยนข้อใหม่ (ใช้ onEnterFrame ไม่คุ้ม)

เมื่อเลืกคำตอบก่อนจะเปลี่ยนข้อ ก็ clearInterval ออกไปแล้วตั้ง interval อีกครั้ง



setInterval คือ สั่งให้ทำงานฟังชั่นใดๆทุกๆเวลาที่กำหนด เดี๋ยวมาอธิบายต่อ
« แก้ไขครั้งสุดท้าย: 28 มี.ค. 2007, 08:43 น. โดย heart » บันทึกการเข้า

ไม่รู้ยังอยากได้อยู่หรือเปล่านะครับ?
ผมเอาโค้ดที่ผมเคยทำมาแปะไว้ให้มึนเล่นกัน  (อิอิ)

โค้ด:
stop();
//ประกาศตัวแปร
//มีกี่คำถามก็ใส่ไปด้วยนะครับ
var questions = 2;

var current_item = 0;
var items_details = [[]];
var score = 0;
/////ตั้งคำถาม ใส่เป็นรูปแบบตามตัวอย่างด้านล่างนี้///////
//[คำถาม,ตัวเลือก A, ตัวเลือก B, ตัวเลือก C, ตัวเลือก D, ปุ่ม (ข้อ) ที่ถูกต้อง]
items_details[0] = ["Question 1", "10", "20", "30", "40", "a"];
items_details[1] = ["Question 2", "abc", "def", "ghi", "jkl", "c"];
//จัดการยัดลง Dynamic Text
q = items_details[current_item][0];
a_txt = items_details[current_item][1];
b_txt = items_details[current_item][2];
c_txt = items_details[current_item][3];
d_txt = items_details[current_item][4];
//Check the answer
function checkAns(name) {
var btnname = items_details[current_item][5]+"_btn";
if (name == btnname) {
_root.score += 1;
}
nextItem();
}
//Go to next question
function nextItem() {
++current_item;
if (current_item<items_details.length) {
q = items_details[current_item][0];
a_txt = items_details[current_item][1];
b_txt = items_details[current_item][2];
c_txt = items_details[current_item][3];
d_txt = items_details[current_item][4];
} else {
_root.gotoAndPlay("showScore");
}
}
_root.a_btn.onRelease = function() {
checkAns(this._name);
};
_root.b_btn.onRelease = function() {
checkAns(this._name);
};
_root.c_btn.onRelease = function() {
checkAns(this._name);
};
_root.d_btn.onRelease = function() {
checkAns(this._name);
};

*อย่าลืม
ทำ Dynamic Text 5 ตัวแล้วตั้งในช่อง Var ตามนี้ครับ

q
a_txt
b_txt
c_txt
d_txt

ใส่ 1 ชื่อต่อ 1 Dynamic Text นะครับ
แล้วก็ทำปุ่มมา 4 ก้อน ตั้งชื่อ Instance Name ตามนี้ครับ
a_btn
b_btn
c_btn
d_btn

- -" ใส่ปุ่มละชื่อนะครับ


ส่วนโค้ดตั้งเวลา ใช้ของพี่ฮาร์ทเลยครับ
บันทึกการเข้า

โ้้ว้ววว ขอบคุณค่ะ
ตอนนี้กะลังรอเพื่อนอีกคนอยู่
เพราะต้องทำส่วนดาต้าเบสเพิ่ม
แล้วจะลองเอาไปใช้ดูนะคะ  ไหว้
บันทึกการเข้า

คนบางคนเกิดมาเพื่อเป็นแค่ความทรงจำ
ห้าวินาทีไม่โหดร้ายไปหน่อยเหรอครับ
บันทึกการเข้า

กินรอบวง
function changeQuiz(){
  เปลี่ยนคำถาม
}

inv = setInterval(changeQuiz,5000)
บันทึกการเข้า

ห้าวินาทีไม่โหดร้ายไปหน่อยเหรอครับ
ใช้ setInterval ให้ทำงานทุกๆ 5 นาที โดยเปลี่ยนข้อใหม่ (ใช้ onEnterFrame ไม่คุ้ม)

เมื่อเลืกคำตอบก่อนจะเปลี่ยนข้อ ก็ clearInterval ออกไปแล้วตั้ง interval อีกครั้ง



setInterval คือ สั่งให้ทำงานฟังชั่นใดๆทุกๆเวลาที่กำหนด เดี๋ยวมาอธิบายต่อ
บันทึกการเข้า

지금은 소녀시대 , 앞으로도 소녀시대 , 영원히 소녀시대
ขอถามหน่อยค่ะ

ถ้าต้องการทำแฟลชสำหรับข้อสอบ
โดยอยากให้จับเวลาเป็นข้อละห้าวินาที
โดยถ้าเลือกตอบก็จะเปลี่ยนข้อทันที
แต่ถ้าไม่้เลือกตอบ เมื่อหมดเวลา 5 วินาที
ก็จะเปลี่ยนข้อเองอัตโนมัติ เมื่อครบทุกข้อ
มีการรวมคะแนนให้ด้วย แฟลชแบบนี้มีรูปแบบสำเร็จรูปมั้ยคะ

แล้วมีหลักการทำคร่าวๆยังไงบ้าง ขอบคุณค่ะ  ไหว้
บันทึกการเข้า

กินรอบวง
 ไหว้
บันทึกการเข้า

지금은 소녀시대 , 앞으로도 소녀시대 , 영원히 소녀시대
หน้า: [1]
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!