Δημιουργία Quiz

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
Expl0it
Honorary Member
Δημοσιεύσεις: 2364
Εγγραφή: 25 Αύγ 2003 23:24
Τοποθεσία: home/sweet/home

Δημιουργία Quiz

Δημοσίευση από Expl0it » 10 Ιουν 2004 21:16

Στο Βοήθημα αυτό θα δούμε πώς μπορούμε να φτιάξουμε ένα quiz !

Δείτε το παράδειγμα και στο Info υπάρχουν τα link για το source.



Για την δημιουργία του QUIZ χρησιμοποιήσα 9 scenes ! Τα οποιά είναι :

preloader : Μπορεί και να μην τον δείτε γιατί είναι μόλις 15KB το flash, αλλά για κάποιους με πολύ χαμηλή σύνδεση είναι απαραίτητο.
main : Εκεί έφτιαξα το menu
info : Εκεί έβαλα κάποιες πληροφορίες και τα Links για το source
question1 : Για την ερώτηση 1
question2 : Για την ερώτηση 2
question3 : Για την ερώτηση 3
question4 : Για την ερώτηση 4
question5 : Για την ερώτηση 5
thend : Εκεί έφτιαξα το τέλος του παιχνιδιού με ink πάλι για το soure και την επιλογή να ξαναπαίξει κάποιος.

Θα δούμε κάθε μία Sene πως φτιάχνεται !

Scene1 : Preloader

Φτιάχνουμε 2 Layer. Το πρώτο το ονομάζουμε Actions και το δεύτερο όπως θέλουμε, δεν έχει σημασία. Εγώ το ονόμασα preloder.

Στο Layer Preloder φτιάχνουμε ένα dynamic text επιλέγοντας γραμματοσειρά μέγεθος και χρώμα που θέλουμε και του δύνουμε το instant name : loader. Στο ίδιο Frame μπορούμε άν θέλουμε να βάλουμε και οτιδήποτε άλλο (όπως τον τίτλο του παιχνιδιού κ.τ.λ).

Τώρα στο Layer Actions φτιάχνουμε 3 Blank Frames. Στο πρώτο πάμε και βάζουμε τον κώδικα :

Κώδικας: Επιλογή όλων

percent = Math.floor(getBytesLoaded()/getBytesTotal()*100);
loader.text = percent+"% is Loaded";
Στο δεύτερο Frame βάζουμε τον κώδικα :

Κώδικας: Επιλογή όλων

if (percent == 100) {
	gotoAndPlay("main", "startquiz");
} else {
	gotoAndPlay("preloader", 1);
}
Όπου main είναι η επόμενη scene και starquiz είναι το όνομα του frame Που θέλουμε να πάει. Στην περίπτωση else δηλώνουμε να πάει και να πέξει το 1ο Frame της Scene preloader ου βρήσκεται ο Preloder μας.

Scene 2 : main

Σε αυτή την Scene έφτιαξα δύο κουμπάκια, 1 για το play και άλλο ένα για το info ! Στο Frame Που έφτιαξα τα κουμπάκια έδωσα το instant name : startquiz.

* Σημείωση : Για να μην έχετε πρόβλημα με κάποιο button όταν το φτιάξετε και μετά θέλετε να αλλάξετε κάτι , πρίν το κάνετε Button κ.αντε το movieclip ! Θα δείτε ότι στην Library τοy source υπάρχουν πολλά movieclip και πολλά Buttons με σχεδόν το ίδιο όνομα ! Αυτό το κάνω γιατί άν θέλω να κάνω μια αλλαγή π.χ σε ένα button θα πρέπει να πώ να κάνω αλλαγή και στα Up,Over,Down και Hit ! Εννώ άν έχω κάνει πρώτα το σχήμα μου movieclip θα μπορώ να κάνω την αλλαγή σε όλα μαζί !

Στο button play πήγα και έδωσα τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question1", "play1");
}
Δηλαδή να πάει να παίξει το Frame : play1 στην Scene : question1

Και στο button Info έδωσα τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("info", "copyright");
}
Επείσης έφτιαξα ένα Layer ακόμα και στο πρώτο Frame έβαλα το action

Κώδικας: Επιλογή όλων

stop();
Scene 3 : question1

Σε αυτή την scene θα δούμε πως φτιάχνται οι ερωτήσεις με τις απαντήσεις. Τον ίδιο τρόπο θα χρησιμοποιήσουμε σε όλες τις scenes με τις ερωτήσεις !

Εδώ θα χριαστούμε 6 Layers ! Τα οποία θα ονομάσουμε κατά σειρά απο κάτω πρός τα πάνω :

question# : Δηλαδή question Number. Μπορείτε να δείτε στο παράδειγμα που φένεται πάνω αριστερά απο κάθε ερώτηση.
q1 : Το frame Που θα βάλουμε την ερώτησή μας.
choices : Εδώ θα βάλουμε τα κουμπάκια και τις απαντήσεις.
correct : Σε αυτό το Layer θα φτιάξουμε την ενέργεια που θα κάνει όταν η απάντηση είναι σωστή
incorrect :Σε αυτό το Layer θα φτιάξουμε την ενέργεια που θα κάνει όταν η απάντηση δεν είναι σωστή
actions : Και αυτό το Layer θα το χρησιμοποιήσουμε για να δηλώσουμε το stop στην αρχή κάθε ερώτησης (Μπορούμε να το κάνουμε σε κάποιο άλλο Layer , αλλά εγώ προτειμώ να τα έχω όλα ξεχωριστά για να βρήσκω ποιο εύκολα το σημείο που θέλω).

Στο Layer quetsion# βάζουμε μόνο ένα text στο πρώτο frame που θα λέει το νούμερο της ερώτησης. Μετά πάμε στο frame 10 και πατάμε δεξί κλίκ και Insert Frame.

Στο Layer q1 βάζουμε την ερώτηση που θέλουμε στο πρώτο Frame και μετά πάμε στο Frame 10 και πατάμε δεξί κλίκ και Insert Frame. Τέλος πάμε στο frame 1 και δίνουμε το Instant Name play1.

Στο Layer choices φτιάχνουμε στο πρώτο frame τα κουμπιά που θέλουμε και τις απαντήσεις (μπορείτε να βάλετε όσες απαντήσεις θέλετε, εγώ έβαλα τρείς). Το κάθε Button πρώτα να το κάνετε movie clip Και μετά Button για τον λόγο που εξηγώ στην σημείωση παραπάνω.

Τώρα ανάλογα με το ποιά θέλετε να είναι και η σωστή απάντηση θα βάλετε και τον ανάλογο κώδικα στα button.

Για την σωστή απάντηση θα βάλετε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question1", "correct1");
}
Και για τις λάθος απαντήσεις θα βάλετε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question1", "incorrect1");
}
Πάμε τώρα να φτιάξουμε την σωστή και την λάθος απάντηση.

Στο Layer correct Πάμε στο frame 11 και πατάμε δεξί κλίκ Insert Blank KeyFrame. Δείνουμε στο Frame αυτό το Instant Name correct1 και στα actions αυτού του Frame βάζουμε τον κώδικα

Κώδικας: Επιλογή όλων

stop();
Πάμε μετά στο frame 25 και πατάμε δεξί κλίκ Insert Frame.

Στο πρώτο Frame σχεδιάζουμε ότι θέλουμε να βγαίνει όταν κάποιος απαντάει σωστά και μετά φτιάχνουμε και το button για να πηγαίνει στην επόμενη ερώτηση.

Στο Button αυτό δείνουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question2", "play2");
}
Για να φτιάξουμε την λάθος απάντηση πάμε στο Layer incorrect και στο Frame 26 πατάμε δεξί κλίκ και Insert Blank KeyFrame. Δείνουμε το Instant Name : incorrect1 και τον κώδικα

Κώδικας: Επιλογή όλων

stop();
Μετά πάμε στο frame 40 και πατάμε δεξί κλίκ και Insert Frame.

Στο Frame 26 φτιάχνουμε ότι θέλουμε να εμφανίζεται όταν κάποιος απαντάει λάθος και μετά προσθέτουμε ένα button για να δείνουμε την δυνατότητα σε αυτόν που έχει απαντήσει λάθος να γυρίσει πίσω και να προσπαθήσει ξανά.

Σε αυτό το button δείνουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question1", "play1");
}
Τέλος στο Layer actions πάμε στο πρώτο Frame και πατάμε δεξί κλίκ Insert Blank KeyFrame και δείνουμε τον κώδικα :

Κώδικας: Επιλογή όλων

stop();
Scene 4 : question2

Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.

Στα Layer q2 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play2

Και τα Frame correct1 και incorect1 να τα κάνουμε correct2 και incorect2

Το ίδιο θα κάνουμε και στα button που βρήσκονται σε αυτή την scene ! Δηλαδή :

Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question2", "correct2");
}
Και στο button για την λάθος απάντηση τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question2", "incorrect2");
}
Στο Button για την επόμενη ερώτηση που βρήσκεται στο frame correct2 πρέπει να δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question3", "play3");
}
Και στο button που βρήσκεται στο frame incorrect2 τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question2", "play2");
}
Scene 5 : question3

Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.

Στα Layer q3 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play3

Και τα Frame correct2 και incorect2 να τα κάνουμε correct3 και incorect3

Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question3", "correct3");
}
Και στο button για την λάθος απάντηση τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question3", "incorrect3");
}
Στο Button για την επόμενη ερώτηση που βρήσκεται στο frame correct3 πρέπει να δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question4", "play4");
}
Και στο button που βρήσκεται στο frame incorrect3 τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question3", "play3");
}

Scene 6 : question4

Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.

Στα Layer q4 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play4

Και τα Frame correct3 και incorect3 να τα κάνουμε correct4 και incorect4

Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question4", "correct4");
}
Και στο button για την λάθος απάντηση τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question4", "incorrect4");
}
Στο Button για την επόμενη ερώτηση που βρήσκεται στο frame correct4 πρέπει να δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question5", "play5");
}
Και στο button που βρήσκεται στο frame incorrect4 τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question4", "play4");
}
Scene 7 : question5

Γείνεται όπως ακριβώς στην 1η ερώτηση ένα μόνο που θα πρέπει να αλλάξουμε κάποια πράγματα.

Στα Layer q5 αυτή την φορά θα πρέπει να βάλουμε στο πρώτο frame το Instant Name : play5

Και τα Frame correct4 και incorect4 να τα κάνουμε correct5 και incorect5

Στο button για την σωστή απάντηση θα δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question5", "correct5");
}
Και στο button για την λάθος απάντηση τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question5", "incorrect5");
}
Στο Button για το τέλος του παιχνιδιού που βρήσκεται στο frame correct5 πρέπει να δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("thend", "playagain");
}

Και στο button που βρήσκεται στο frame incorrect5 τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question5", "play5");
}
Scene 8 : thend

Σε αυτή την scene θα φτιάξουμε 1 Layer και στο πρώτο Frame θα δώσουμε το Instant Name playagain μετά θα πάμε στο Frame 20 και πατάμε δεξί κλίκ Insert Frame Επείσης δείνουμε στο πρώτο frame τον κώδικα

Κώδικας: Επιλογή όλων

stop();
Εδώ θα βάλουμε 2 button το ένα για να γυρίζει στην αρχή και το 2ό για να πηγαίνει στο Info !

Στο button play again θα δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("question1", "play1");
}
Και στο button για το Info θα δώσουμε τον κώδικα :

Κώδικας: Επιλογή όλων

on (release) {
	gotoAndPlay("info", "copyright");
}
Επειδή ξέχασα να γράψω για την scene info στην αρχή ! Το γράφω εδώ :lol: :lol:

Scene 9 : info

Σε αυτή την Scene θα χρειαστούμε 1 Layer που στο πρώτο frame θα δώσουμε το Instant Name : copyright και στο frame 20 δεξί κλίκ και Insert Frame. Επίσης στο Frame 1 δείνουμε τον κώδικα :

Κώδικας: Επιλογή όλων

stop();
Σε αυτή την scene μπορείτε να βάλετε πληροφορίες για το game ή ότι άλλο θέλετε !!

Αυτά τα λίγα είχα να πώ :lol: :lol:

Ότι απορία υπάρχει απαντήστε απο κάτω και θα την βρούμε την λύση :P
LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0

Εικόνα

Inzoy
Δημοσιεύσεις: 23
Εγγραφή: 17 Μαρ 2004 17:01

Δημιουργία Quiz

Δημοσίευση από Inzoy » 11 Ιουν 2004 14:49

you are good..
nice tutorial

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13307
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

Δημιουργία Quiz

Δημοσίευση από EneMe » 11 Ιουν 2004 15:25

Πολύ ωραίο!!!

Σε κάποιο επόμενο στάδιο ανάπτυξης, καλό θα ήταν να έρχονται τυχαία οι ερωτήσεις! ;)

Περιμένουμε! ;)

spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

Δημιουργία Quiz

Δημοσίευση από spookyb52 » 11 Ιουν 2004 15:41

Δέν έχω εγώ τα περισσότερα tutorials??? :o

Τώρα κανονικά θα έπρεπε εγώ να πώ για τα tutorials που μου κλέβουν για τους ιούς και τις κατάρες που μου ρίχνουν για το block στο log-in για την συνάντηση που θα γίνει μέσα στην εξεταστική και για χίλια δύο άλλα. Δέ θα τα πώ όμως γιατί είμαι ανώτερος... 8)

θα απαντήσω με κώδικα και όποιος έχει flash θα συμφωνήσει μαζί μου :P

:arrow: βάλτε το σε ένα keyframe και ctrl+enter

Σταμάτησα το διάβασμα στη δημόσια διοίκηση για να το φτιάξω... και τώρα βαριέμαι τόσο που αποκλείεται να το συνεχίσω :D :P :P

Κώδικας: Επιλογή όλων

comment = [" - χάλια", " - άσχημα", " - μέτρια", " - καλά", " - τέλεια"];
myFormat = new TextFormat();
with (myFormat) {
	align = "center";
}
apanthseis = [1, 1, 1, 1];
thimata = ["Spooky rulez", "Lightforce sucks", "Filter xmmm"];
currentQuest = [];
score = 0;
//-----------
question = new Array();
question[0] = "Πάτησε ένα κουμπί για να ξεκινήσεις";
question[1] = "ποιός είναι πιό όμορφος?";
question[2] = "ποιός είναι πιο έξυπνος?";
question[3] = "ποιός είναι πιό παλιός στο forum?";
question[4] = "ποιός είναι πιό μικρός αλλά ταυτόχρονα σοφός?";
//--------------------------------
createTextField("quest", 4, 18, 10, 236, 22);
quest.selectable = false;
_root.quest.text = question[0];
//--------------------------------
createEmptyMovieClip("box", 5);
duplicateMovieClip("box", "boxNew", 0);
with (boxNew) {
	beginFill(0x336699, 10);
	moveTo(0, 30);
	lineTo(250, 30);
	lineTo(250, 100);
	lineTo(0, 100);
	lineTo(0, 30);
	endFill();
}
duplicateMovieClip("box", "triangle", -1);
with (triangle) {
	beginFill(0xff0000);
	lineTo(10, 10);
	lineTo(0, 10);
	endFill();
	_rotation = 225;
	_y = 26;
	_x = 5;
}
onEnterFrame = function () {
	_root.quest.text = (currentQuest.length != undefined) ? question[currentQuest.length] : _root.quest.text;
	for &#40;i=1; i<=3; ++i&#41; &#123;
		createTextField&#40;"choice"+i, i, 40, 16+20*i, 200, 22&#41;;
		with &#40;_root&#91;"choice"+i&#93;&#41; &#123;
			selectable = false;
			text = thimata&#91;i-1&#93;;
			textColor = 0x336699;
			// -------
			if &#40;currentQuest.length == 5 || quest.text == undefined&#41; &#123;
				removeTextField&#40;&#41;;
				quest.text = "The End";
				createTextField&#40;"endthis", 12, 43, 55, 160, 20&#41;;
				with &#40;endthis&#41; &#123;
					selectable = false;
					background = 0xffffff;
					text = percent+" % επιτυχία"+sxolio;
					setTextFormat&#40;myFormat&#41;;
				&#125;
			&#125;
		&#125;
		duplicateMovieClip&#40;"box", "box"+i, 5+i&#41;;
		// ---------
		_root&#91;"box"+i&#93;.onRollOver = function&#40;&#41; &#123;
			useHandCursor = true;
		&#125;;
		with &#40;_root&#91;"box"+i&#93;&#41; &#123;
			beginFill&#40;0x336699&#41;;
			lineTo&#40;11, 0&#41;;
			lineTo&#40;11, 11&#41;;
			lineTo&#40;0, 11&#41;;
			lineTo&#40;0, 0&#41;;
			endFill&#40;&#41;;
			if &#40;currentQuest.length != 5&#41; &#123;
				_x = 20;
				_y = 20*i+20;
				_alpha = &#40;hitTest&#40;_root._xmouse, _root._ymouse, false&#41;&#41; ? 40 &#58; 100;
			&#125; else &#123;
				_y = 11111;
				removeMovieClip&#40;&#41;;
			&#125;
		&#125;
	&#125;
&#125;;
onMouseDown = function &#40;&#41; &#123;
	for &#40;j=0; j<4; ++j&#41; &#123;
		if &#40;_root&#91;"box"+j&#93;.hitTest&#40;_root._xmouse, _root._ymouse, false&#41;&#41; &#123;
			pressbox = j;
		&#125;
	&#125;
	if &#40;pressbox != undefined&#41; &#123;
		if &#40;currentQuest.length<5&#41; &#123;
			currentQuest.push&#40;newQ&#41;;
		&#125;
		if &#40;apanthseis&#91;currentQuest.length-2&#93; == pressbox && _root.quest.text != "The End"&#41; &#123;
			score += &#40;score<4&#41; ? 1 &#58; 0;
		&#125;
	&#125;
	percent = score*100/4;
	sxolio = comment&#91;score&#93;;
&#125;;
Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner

Άβαταρ μέλους
Expl0it
Honorary Member
Δημοσιεύσεις: 2364
Εγγραφή: 25 Αύγ 2003 23:24
Τοποθεσία: home/sweet/home

Δημιουργία Quiz

Δημοσίευση από Expl0it » 11 Ιουν 2004 15:56

Για να είμαστε ποιο σωστοί πιστεύω ότι πρέπει να πρίν το πρώτο comment να βάλουμε αυτό

Κώδικας: Επιλογή όλων

comment = &#91;" - χάλια", " - άσχημα", " - μέτρια", " - καλά", " - τέλεια"&#93;; 
myFormat = new TextFormat&#40;&#41;; 
with &#40;myFormat&#41; &#123; 
   align = "center"; 
&#125; 
apanthseis = &#91;1, 1, 1, 1&#93;; 
thimata = &#91;"Filter", "Lightforce", "Crazy Spooky"&#93;; 
currentQuest = &#91;&#93;; 
score = 0; 
Έτσι είναι το σωστό :P
χαχαχαχαχαχαχαχαχα
LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0

Εικόνα

Άβαταρ μέλους
SotirisGD
Δημοσιεύσεις: 5
Εγγραφή: 16 Δεκ 2009 16:33
Τοποθεσία: Athina

Δημιουργία Quiz

Δημοσίευση από SotirisGD » 17 Δεκ 2009 13:12

pedes den kserw giati alla se flash Cs3 to line 43 kai to line 47 mou vgazoune sfalma
Once You Mac...

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

Δημιουργία Quiz

Δημοσίευση από nkast » 06 Ιαν 2010 08:01

Υποψιάζομαι οτι θα εχεις φτιάξει project σε AS3.
Ανοιξε File/Publish Properties/TAB:Flash/Script και γύρισε το σε AS2.

Απάντηση

Επιστροφή στο “Flash γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες