AS3 και συνταξη κωδικα

ActionScript και Flex Προγραμματισμός

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

Απάντηση
Mihos4u
Δημοσιεύσεις: 5
Εγγραφή: 26 Οκτ 2010 15:11

AS3 και συνταξη κωδικα

Δημοσίευση από Mihos4u » 25 Νοέμ 2010 16:32

Συμφουρίτες τα φώτα σας γιατί δε μπορώ. Δεν εχω φαει και τη ζωη μου και δε προκειται αλλα επειδη μου την εχει ψιλοσπασει μιας και δε βρισκω τη λογικη να συμβαινει αυτο το παραθετω μηπως μπορεσει και καποιος να μου το εξηγησει.
Θελω να ξεκιναει το flash να επιλεγει τυχαια εναν αριθμο απο το 0-100 και εγς με τη σειρα μου να προσπαθω να τον εντοπισω.
Έχουμε 3 text οπου το text1 ειναι ο αριθμος που επιλεγεται τυχαια το text2 που ειναι input για να δεχεται νουμερο απο τον χρηστη και το text3 που λεει αν εισαι κοντα και τα λοιπα. Και φυσικα ενα button το οποιο πατας για να γινει ο ελεγχος. Και εχω κανει αυτο...


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

import flash.events.MouseEvent;

btn.addEventListener(MouseEvent.CLICK, onClick);

var my_var:int = Math.round (Math.random ()*100);
var my_ch:String = text2.text;
var my_res:String;

text1.text = String(my_var);


function onClick(event:MouseEvent):void {
if &#40;my_ch < my_var&#41;
	text3.text = "The Number is Bigger";
		else if &#40;my_ch > my_var&#41;
	text3.text = "The Number is Smaller";
		else if &#40;my_ch = my_var&#41; 
	text3.text = "This is the Number";
&#125;

το προβλημα μου ειναι οτι δεν επιλεγει ΚΑΝ νουμερο τυχαια!!! ΑΝ ομως βαλω το btn.addEnet.... σε σχολιο και το ιδιο και ολο το function μου δινει κανονικα τυχαιο νουμερο και για να μη σας κανω δυσκολη τη ζωη σας δινω και το .fla

Ευχαριστω εκ των προτέρων και δε με ενδιαφερει τοσο η λυση εως καθολου δλδ αλλα να μου εξηγησει καποιος το γιατι συμβαινει και το βρισκω μετα. (το if μπορει να ειναι κατακρεουργημενο αλλα εδω αντιβετωπιζω προβλημα στη λογικη που συντασεται η actionscript στο if θα σταθουμε.... χαχαχαχα)
Συνημμένα
RandomNmbr.rar
(7.05 KiB) Μεταφορτώθηκε 213 φορές

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

AS3 και συνταξη κωδικα

Δημοσίευση από HeRu » 25 Νοέμ 2010 18:24

Δεν σου βγάζει το νούμερο, επειδή έχει errors. Θα πρέπει μέσα στο Flash να βλέπεις το Compile Errors panel και να φτιάχνεις τα error που βγάζει.

Έχει δυο errors, πρώτον δεν μπορείς να συγκινείς το my_ch(String) με το my_var(int) και δεύτερο η σύγκριση γίνεται με 2 == (else if (my_ch == my_var)).

Επίσης έχεις ένα λογικό λάθος, "var my_ch:String = text2.text;" αυτό θα διαβάσει την τιμή του text2 μόνο μια φορά μόλις εκτελεστεί το πρόγραμμα.

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

import flash.events.MouseEvent;

btn.addEventListener&#40;MouseEvent.CLICK, onClick&#41;;

var my_var&#58;int = Math.round &#40;Math.random &#40;&#41;*100&#41;;
var my_ch&#58;int; // Το κάνουμε int
var my_res&#58;String;

text1.text = String&#40;my_var&#41;;

function onClick&#40;event&#58;MouseEvent&#41;&#58;void &#123;
	my_ch = int&#40;text2.text&#41;; // Διαβάζουμε το text κάθε φορά και το μετατρέπουμε σε int
if &#40;my_ch < my_var&#41;
	text3.text = "The Number is Bigger";
		else if &#40;my_ch > my_var&#41;
	text3.text = "The Number is Smaller";
		else if &#40;my_ch == my_var&#41; 
	text3.text = "This is the Number";
&#125;

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

AS3 και συνταξη κωδικα

Δημοσίευση από nkast » 25 Νοέμ 2010 18:30

To fla δεν μου ανοίγει με CS4.


Σου βγάζει κάποιο μήνυμα λάθους κατά το compilation;
Έχεις εγκαταστήσει τον DEBUG player για να πιάνεις runtime errors;


Μερικές πρόχειρες σκέψεις:
Δοκίμασε να κολλήσεις την παρένθεση στο round (χωρίς κενό).
Δοκίμασε να βάλεις τον Event Listener μετα τη δήλωση της onClick.

Πριν την σύγκριση πρέπει να μετατρέψεις το my_ch σε int.
Αυτό που κάνει τώρα το φλαση, πιθανότατα είναι να μετατρέπει το my_var σε string! (η χτυπάει με κάποιο error που δεν έχεις δει.)
Ψάξε για την συνάρτηση parseInt στο documentation.

Σιγα σιγα θα την βρείς την ακρη.
Το Flash είναι της υπομονής :hammer:

Mihos4u
Δημοσιεύσεις: 5
Εγγραφή: 26 Οκτ 2010 15:11

AS3 και συνταξη κωδικα

Δημοσίευση από Mihos4u » 25 Νοέμ 2010 18:37

HeRu έγραψε:Δεν σου βγάζει το νούμερο, επειδή έχει errors. Θα πρέπει μέσα στο Flash να βλέπεις το Compile Errors panel και να φτιάχνεις τα error που βγάζει.

Έχει δυο errors, πρώτον δεν μπορείς να συγκινείς το my_ch(String) με το my_var(int) και δεύτερο η σύγκριση γίνεται με 2 == (else if (my_ch == my_var)).

Επίσης έχεις ένα λογικό λάθος, "var my_ch:String = text2.text;" αυτό θα διαβάσει την τιμή του text2 μόνο μια φορά μόλις εκτελεστεί το πρόγραμμα.
Σε ευχαριστω πολυ, ειχα καιρο να ασχοληθω με προγραμματισμο και εχω ξεχασει μεχρι και τα βασικα :(

Απάντηση

Επιστροφή στο “ActionScript και Flex Προγραμματισμός”

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

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