freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.
 

Δημιουργία Quiz


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Silverlight & Flash » Flash γενικά
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα]      Bookmarks Tags: quizδημιουργία Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
Expl0it
Honorary Member

Μέλος από: 25 Αυγ 2003
Βοηθήματα: 29
Νέα: 7
Scripts: 1
Μηνύματα: 256+

Περιοχή: home/sweet/home
View users profile
ΜήνυμαΣτις: 10 Ιουν 2004 20:16    Θέμα: Δημιουργία Quiz Απάντηση με παράθεση  Mark this post and the followings unread

Στο Βοήθημα αυτό θα δούμε πώς μπορούμε να φτιάξουμε ένα 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 στην αρχή ! Το γράφω εδώ

Scene 9 : info

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


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

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

Ότι απορία υπάρχει απαντήστε απο κάτω και θα την βρούμε την λύση

_________________
LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0

Inzoy


Μέλος από: 17 Μαρ 2004
Βοηθήματα: 1
Μηνύματα: 23


View users profile
ΜήνυμαΣτις: 11 Ιουν 2004 13:49    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

you are good..
nice tutorial
EneMe
Super Moderator

Μέλος από: 09 Ιουλ 2002
Βοηθήματα: 10
Νέα: 11
Μηνύματα: 256+

Περιοχή: Στα όρη, στα άγρια βουνά, μέσα στα κοσμικά χιόνια!
View users profile Visit posters website
blog deviantART twitter deviantART 
ΜήνυμαΣτις: 11 Ιουν 2004 14:25    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

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

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

_________________
AmfissaPress.gr - Ειδήσεις από Φωκίδα - Δήμο Δελφών - Δήμο Δωρίδας
Εκτιμήσεις ακινήτων - Ενεργειακές επιθεωρήσεις - Τοπογραφικά - Οικοδομικές άδειες - Άδειες καταστημάτων
spookyb52


Μέλος από: 23 Ιαν 2002
Βοηθήματα: 26
Scripts: 5
Μηνύματα: 256+

Περιοχή: Lost in the mansion
View users profile Visit posters website
ΜήνυμαΣτις: 11 Ιουν 2004 14:41    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

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

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

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

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

κώδικας:
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 (i=1; i<=3; ++i) {
      createTextField("choice"+i, i, 40, 16+20*i, 200, 22);
      with (_root["choice"+i]) {
         selectable = false;
         text = thimata[i-1];
         textColor = 0x336699;
         // -------
         if (currentQuest.length == 5 || quest.text == undefined) {
            removeTextField();
            quest.text = "The End";
            createTextField("endthis", 12, 43, 55, 160, 20);
            with (endthis) {
               selectable = false;
               background = 0xffffff;
               text = percent+" % επιτυχία"+sxolio;
               setTextFormat(myFormat);
            }
         }
      }
      duplicateMovieClip("box", "box"+i, 5+i);
      // ---------
      _root["box"+i].onRollOver = function() {
         useHandCursor = true;
      };
      with (_root["box"+i]) {
         beginFill(0x336699);
         lineTo(11, 0);
         lineTo(11, 11);
         lineTo(0, 11);
         lineTo(0, 0);
         endFill();
         if (currentQuest.length != 5) {
            _x = 20;
            _y = 20*i+20;
            _alpha = (hitTest(_root._xmouse, _root._ymouse, false)) ? 40 : 100;
         } else {
            _y = 11111;
            removeMovieClip();
         }
      }
   }
};
onMouseDown = function () {
   for (j=0; j<4; ++j) {
      if (_root["box"+j].hitTest(_root._xmouse, _root._ymouse, false)) {
         pressbox = j;
      }
   }
   if (pressbox != undefined) {
      if (currentQuest.length<5) {
         currentQuest.push(newQ);
      }
      if (apanthseis[currentQuest.length-2] == pressbox && _root.quest.text != "The End") {
         score += (score<4) ? 1 : 0;
      }
   }
   percent = score*100/4;
   sxolio = comment[score];
};

_________________
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

Μέλος από: 25 Αυγ 2003
Βοηθήματα: 29
Νέα: 7
Scripts: 1
Μηνύματα: 256+

Περιοχή: home/sweet/home
View users profile
ΜήνυμαΣτις: 11 Ιουν 2004 14:56    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Για να είμαστε ποιο σωστοί πιστεύω ότι πρέπει να πρίν το πρώτο comment να βάλουμε αυτό
κώδικας:
comment = [" - χάλια", " - άσχημα", " - μέτρια", " - καλά", " - τέλεια"];
myFormat = new TextFormat();
with (myFormat) {
   align = "center";
}
apanthseis = [1, 1, 1, 1];
thimata = ["Filter", "Lightforce", "Crazy Spooky"];
currentQuest = [];
score = 0;


Έτσι είναι το σωστό
χαχαχαχαχαχαχαχαχα

_________________
LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0

SotirisGD


Μέλος από: 16 Δεκ 2009
Μηνύματα: 5
Περιοχή: Athina
View users profile
ΜήνυμαΣτις: 17 Δεκ 2009 13:12    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

_________________
Once You Mac...
nkast


Μέλος από: 15 Νοε 2009
Μηνύματα: 137

View users profile Visit posters website
ΜήνυμαΣτις: 06 Ιαν 2010 08:01    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Υποψιάζομαι οτι θα εχεις φτιάξει project σε AS3.
Ανοιξε File/Publish Properties/TAB:Flash/Script και γύρισε το σε AS2.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [7 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Silverlight & Flash » Flash γενικά
Τώρα είναι 20 Σεπ 2014 07:53 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos