ขอถามหน่อยค่ะ
ถ้าต้องการทำแฟลชสำหรับข้อสอบ
โดยอยากให้จับเวลาเป็นข้อละห้าวินาที
โดยถ้าเลือกตอบก็จะเปลี่ยนข้อทันที
แต่ถ้าไม่้เลือกตอบ เมื่อหมดเวลา 5 วินาที
ก็จะเปลี่ยนข้อเองอัตโนมัติ เมื่อครบทุกข้อ
มีการรวมคะแนนให้ด้วย แฟลชแบบนี้มีรูปแบบสำเร็จรูปมั้ยคะ
แล้วมีหลักการทำคร่าวๆยังไงบ้าง ขอบคุณค่ะ :46:
ผมไม่แน่ใจนะครับ แต่คาดว่าน่าจะมี
- โจทย์ละเอียดยังงี้ไม่มีสำเร็จรูปแน่ๆ ครับ
- หลักการทำคร่าวๆ ต้องถามแฟลชโปรแกรมเมอร์นะ แต่ถ้าตูทำก็คงออกมาประมาณนี้
+ สร้างสคริปต์นับถอยหลังแล้วสั่ง _root.nextframe() ยัดใส่ movieclip ซ่อนไว้ทุกเฟรม เพื่อให้มันนับถอยหลัง
+ แต่ละเฟรมมีโจทย์มีอะไรเสร็จสรรพ ตัวเลือกมี 1 ตัวเลือกที่กดแล้วได้แต้ม นอกนั้นก็ให้ _root.nextframe()
+ เฟรมสุดท้ายให้มันรวมค่าคะแนน
เดี๋ยวจะลองปรึกษากะเพื่อนดูจ่ะ
แล้วถ้าติดขัดตรงไหนจะมาถามต่อ :46:
+1
ตรงจับเวลา พอมีวิธีแนะนำอยู่ 2 วิธีครับ
คือใช้ onenterframe เพื่อเชกว่าเวลามันผ่านไปครบ 5 วินาทีหรือยัง
หรืออีกวิธีคือใช้ movieclip สร้างความยาวไว้ 5 วินาที
(แล้วแต่ frame per sec ของงานที่น้องสร้างไว้)
แล้ว frame สุดท้าย ก็ค่อยเขียนคำสั่งบวกลบคะแนน และไปยังคำถามถัดไป
และแน่นอนนะครับ ว่าก็ต้องมี event ของปุ่มด้วย
ถ้าเป็น กรณีแรก ให้เคลียเวลากลับมาเป็น 0 ก่อนด้วย
แต่ถ้าเป็น กรณี2 ก็ข้ามไปยังคำถามข้อต่อไปได้เลย
อาจจะมีกรณีอื่นๆอีกนะครับ ที่ทำได้ :42:(แต่ตอนนี้ผมคิดไม่ออก)
อยากรู้เหมือนกัน!!! เคยพยายามอ่าน Help ในหัวข้อ SetInterval แล้ว แต่ไม่รู้เรื่อง ผู้รู้กรุณาช่วยทีครับ :46: :46:
ใช้ setInterval ให้ทำงานทุกๆ 5 นาที โดยเปลี่ยนข้อใหม่ (ใช้ onEnterFrame ไม่คุ้ม)
เมื่อเลืกคำตอบก่อนจะเปลี่ยนข้อ ก็ clearInterval ออกไปแล้วตั้ง interval อีกครั้ง
setInterval คือ สั่งให้ทำงานฟังชั่นใดๆทุกๆเวลาที่กำหนด เดี๋ยวมาอธิบายต่อ
ไม่รู้ยังอยากได้อยู่หรือเปล่านะครับ?
ผมเอาโค้ดที่ผมเคยทำมาแปะไว้ให้มึนเล่นกัน :43:
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
- -" ใส่ปุ่มละชื่อนะครับ
ส่วนโค้ดตั้งเวลา ใช้ของพี่ฮาร์ทเลยครับ
โ้้ว้ววว ขอบคุณค่ะ
ตอนนี้กะลังรอเพื่อนอีกคนอยู่
เพราะต้องทำส่วนดาต้าเบสเพิ่ม
แล้วจะลองเอาไปใช้ดูนะคะ :46:
ห้าวินาทีไม่โหดร้ายไปหน่อยเหรอครับ
function changeQuiz(){
เปลี่ยนคำถาม
}
inv = setInterval(changeQuiz,5000)
อ้างคำพูดจาก: daylight เมื่อ 02 เม.ย. 2007, 15:39 น.
ห้าวินาทีไม่โหดร้ายไปหน่อยเหรอครับ
อ้างคำพูดจาก: heart เมื่อ 28 มี.ค. 2007, 08:39 น.
ใช้ setInterval ให้ทำงานทุกๆ 5 นาที โดยเปลี่ยนข้อใหม่ (ใช้ onEnterFrame ไม่คุ้ม)
เมื่อเลืกคำตอบก่อนจะเปลี่ยนข้อ ก็ clearInterval ออกไปแล้วตั้ง interval อีกครั้ง
setInterval คือ สั่งให้ทำงานฟังชั่นใดๆทุกๆเวลาที่กำหนด เดี๋ยวมาอธิบายต่อ
อ้างคำพูดจาก: มะนุช เมื่อ 27 มี.ค. 2007, 18:44 น.
ขอถามหน่อยค่ะ
ถ้าต้องการทำแฟลชสำหรับข้อสอบ
โดยอยากให้จับเวลาเป็นข้อละห้าวินาที
โดยถ้าเลือกตอบก็จะเปลี่ยนข้อทันที
แต่ถ้าไม่้เลือกตอบ เมื่อหมดเวลา 5 วินาที
ก็จะเปลี่ยนข้อเองอัตโนมัติ เมื่อครบทุกข้อ
มีการรวมคะแนนให้ด้วย แฟลชแบบนี้มีรูปแบบสำเร็จรูปมั้ยคะ
แล้วมีหลักการทำคร่าวๆยังไงบ้าง ขอบคุณค่ะ :46:
:46: