Actionscript 3,0 για αρχάριους: μάθημα # 4

Τρίτη, 11 Νοεμβρίου 2008

Θα επαναλάβει το δείγμα κώδικα TicTacToe (το οποίο είναι εξ ολοκλήρου στο Google Code) και να αρχίσουμε να αναλύουμε με λεπτομέρειες.

Εισαγωγικοί ορισμοί

Με Actionscript 3,0 έχει γίνει ένα μεγάλο έργο του καθαρισμού και της στέγασης nell'alberatura κατηγορίας (που περιέχονται στις συσκευασίες, package χρησιμοποιείται κατά τη διάρκεια της ανάπτυξης. Σε άλλες γλώσσες προγραμματισμού, όπως η C για παράδειγμα, όταν θέλετε να χρησιμοποιήσετε μια δυνατότητα που πρέπει να ρητά "εισαγωγή" στον κώδικα. Αυτή η διαδικασία της "εισαγωγής" είναι απαραίτητο για να επιτρέψει το μεταγλωττιστή για να έχουν όλοι οι κωδικοί και οι ορισμοί που σχετίζονται με τα χαρακτηριστικά που θέλουμε να χρησιμοποιήσουμε. Σε Actionscript 3.0, ωστόσο, Παιδείας import δεν πρέπει να συγχέεται με το αντίστοιχο C / C + + #include Actionscript 3,0 παρέχει εκπαίδευση include ότι είναι ταυτόσημη με την #include την C / C + +. Ο τελευταίος, μάλιστα, "περιλαμβάνει" το πραγματικό κώδικα που, αν χρησιμοποιείται ή δεν έχει συγκεντρωθεί στο τελικό. Εκπαίδευση import είναι το υψηλότερο επίπεδο και είναι πιο "έξυπνο" να εκπονούνται. Εξυπηρετεί κατά κύριο λόγο για την πρόσβαση στις τάξεις, χωρίς να προσδιορίζει το πλήρες όνομα. Σε alre λόγια, αντί να χρησιμοποιεί μορφές, όπως:

Actionscript:
  1. . MovieClip = new flash. display . MovieClip ( ) ; var myMC: flash. οθόνη. movieclip = νέας ανάφλεξης. οθόνη. movieclip ()?

Με τον ορισμό της εισαγωγής ενός ειδικού πακέτου (βιβλιοθήκη ή αν προτιμάτε), παίρνετε την πιο απλή και ευανάγνωστη:

Actionscript:
  1. . MovieClip ; εισαγωγή flash. οθόνη. movieclip?
  2. / /
  3. = new MovieClip ( ) ; var myMC: movieclip movieclip = new ()?

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

Actionscript:
  1. .*; εισαγωγή flash. απεικόνιση .*?
  2. .*; εισαγωγή flash.. * εκδηλώσεις?
  3. .*; εισαγωγή flash. κείμενο .*?

Η πρώτη import καθιστά διαθέσιμες όλες τις κατηγορίες και τους ορισμούς στο πλαίσιο του πακέτου flash.display Εναλλακτικά, θα μπορούσαμε να αντικαταστήσουν το σύνολο της δέσμης μέτρων για τις εισαγωγές (στοχευμένους) επιμέρους κατηγορίες και οι ορισμοί που χρησιμοποιούμε, και συγκεκριμένα:

Actionscript:
  1. . DisplayObject ; εισαγωγή flash. οθόνη. DisplayObject?
  2. . MovieClip ; εισαγωγή flash. οθόνη. movieclip?
  3. . Stage ; εισαγωγή flash. οθόνη. Στάδιο?
  4. . StageAlign ; εισαγωγή flash. οθόνη. StageAlign?
  5. . StageScaleMode ; εισαγωγή flash. οθόνη. StageScaleMode?

Η επιχείρηση αυτή "λεπτομέρεια" αυτή δεν είναι απαραίτητη για το τελικό αποτέλεσμα. Αν δεν είναι μια κατηγορία που εισάγεται με τη χρήση της γραφής, δεν είναι - έξυπνα - εξάγονται σε SWF αρχεία.

Αυτό σημαίνει ότι μπορείτε να εισαγάγετε σε μεγάλες συσκευασίες χωρίς να ανησυχείτε για το μέγεθος των SWF αρχεία και τα byte κωδικός που συνδέεται με μια κατηγορία, περιλαμβάνονται σε μια SWF αρχείο μόνο εάν η κλάση έχει πράγματι χρησιμοποιηθεί.

Επί πλέον, αν το παρακάνετε με τα "αστέρια", δηλαδή με σύνταξη όπως flash.* μπορούμε να έχουμε ένα "ελαφρά" επιβράδυνση κατά τη διάρκεια της συγκέντρωσης! Στο "καθημερινότητας", επομένως, μπορεί να χρησιμοποιηθεί με απόλυτη ειρήνη της σύνταξη που χρησιμοποιείται στο παράδειγμά μας.

Σταθερή στατική

Εδώ είναι ένα άλλο ενδιαφέρον χαρακτηριστικό της Actionscript 3.0: τη σταθερή στατική. Όπως σας έχουν καθιερώσει κάποια ως παράδειγμα:

Actionscript:
  1. : String = "TicTacToe" ; δημόσια στατική CONST ΟΝΟΜΑ: String = "TicTacToe"?
  2. : String = "1.0" ; δημόσια στατική CONST VERSION: String = "1.0"?
  3. = "Giovambattista Fazioli <g.fazioli@undolog.com>" ; δημόσια στατική CONST AUTHOR: String = "Giovambattista Fazioli <g.fazioli@undolog.com>"?

Είναι περίεργο να σημειωθεί ότι η ίδια σειρά μπορεί να γραφεί ως:

Actionscript:
  1. : String = "TicTacToe" ; δημόσια στατική CONST ΟΝΟΜΑ: String = "TicTacToe"?
  2. : String = "1.0" ; δημόσια στατική CONST VERSION: String = "1.0"?
  3. = "Giovambattista Fazioli <g.fazioli@undolog.com>" ; δημόσια στατική CONST AUTHOR: String = "Giovambattista Fazioli <g.fazioli@undolog.com>"?

Ανεξάρτητα από αυτά τα "αξιοσημείωτα" του Flash CS3, θα λέγαμε ότι η συνεχής ή στατικές μεταβλητές σχετίζονται με την τάξη και να μην το παράδειγμα της κατηγορίας! Βλέπε κλάσεις, αντικείμενα και Περιπτώσεις. Αυτή είναι μία σημαντική διαφορά είναι στην περίπτωσή μας, αν θέλουμε να γράψετε - για παράδειγμα:

Actionscript:
  1. TicTacToe ( ) ; var TTT: TicTacToe = νέα TicTacToe ()?
  2. ttt. AUTHOR ) ; // errore ίχνος (ttt. AUTHOR) / / σφάλμα

Αυτό θα δημιουργήσει ένα σφάλμα. Αυτό οφείλεται στο γεγονός ότι η συνεχής ή στατικές μεταβλητές που σχετίζονται άμεσα με τον ορισμό της κατηγορίας αυτής και δεν με την εφαρμογή της. Ο σωστός τρόπος είναι:

Actionscript:
  1. TicTacToe. AUTHOR ) ; // Giovambattista Fazioli <g.fazioli@undolog.com> ίχνος (TicTacToe. AUTHOR) / / Giovambattista Fazioli <g.fazioli@undolog.com>

Η συνεχής ή στατικές μεταβλητές είναι χαρακτηριστικά που δεν είναι "instantiated" αρκετές φορές. Το προϊόν χρησιμοποιείται σε όλες τις περιπτώσεις όπου η τιμή είναι αποθηκευμένα (είτε με τη μορφή μιας μεταβλητής ως σταθερά) εξακολουθεί να ισχύει για όλες τις περιπτώσεις της κατηγορίας αυτής και στη συνέχεια μπορεί να μοιράζονται με όλα τα "παιδιά".

Μεταβλητές και Σταθερές

Είναι εύκολο να μαντέψει τη διαφορά μεταξύ των μεταβλητών και σταθερή, όπως υποδηλώνει το όνομα Ο σχολιασμός. Ωστόσο, θα πρέπει να εξηγήσουμε γιατί έχουμε προ ολίγου. Μια μεταβλητή είναι ένας χώρος που προορίζεται για δεδομένα (αριθμητικοί, string, boolean, κλπ. ...) που μπορεί (ή πρέπει) να αλλάξουν την τιμή της κατά τη διάρκεια της εκτέλεσης του κώδικα. Αντίθετα, οι σταθερές είναι οι χώροι που προορίζονται για τα δεδομένα που δεν θα αλλάξει ποτέ την αξία τους κατά την εκτέλεση ενός κώδικα: παραμένουν σταθερές! Δείτε τις σταθερές και μεταβλητές: ποια είναι η πραγματική διαφορά;.

Σε Actionscript 3.0, όπως και σε άλλες γλώσσες, τις σταθερές μπορεί να οριστεί μόνο μια φορά: κατά τη διάρκεια ή αμέσως μετά τον ορισμό του κωδικού:

Actionscript:
  1. Παράδειγμα κατηγορίας (
  2. = 0 ; δημόσια CONST COSTANTE_A: int = 0?
  3. ; δημόσια CONST COSTANTE_B: int?
  4. / / Κατασκευαστής
  5. Esempio ( ) { Παράδειγμα δημόσια λειτουργία () (
  6. COSTANTE_B = 10?
  7. )
  8. )
  9. Esempio ( ) ; var δείγμα: Παράδειγμα = νέα Παράδειγμα ()?
  10. sample. COSTANTE_A ) ; // 0 ίχνος (sample. COSTANTE_A) / / 0
  11. sample. COSTANTE_B ) ; // 10 ίχνος (sample. COSTANTE_B) / / 10

Την επόμενη φορά που θα αναλύσει τον κώδικα, και αναμένουμε να τα "είδη", διότι, ενδιαφέρον και σημαντικό θέμα με την απελευθέρωση των Actionscript 3.0.

Σχετικές Post

Αφήστε ένα σχόλιο

TAG XHTML επιτρέπεται: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Χρησιμοποίησε <pre> να επισυνάψουν κωδικός