[AS3.0] Δουλεύοντας με Classes (Α)

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

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

Απάντηση
Άβαταρ μέλους
Maradonna
Δημοσιεύσεις: 135
Εγγραφή: 07 Ιουν 2007 03:19
Τοποθεσία: Αθήνα
Επικοινωνία:

[AS3.0] Δουλεύοντας με Classes (Α)

Δημοσίευση από Maradonna » 10 Φεβ 2010 18:10

Με την actionscript 3.0,όντας πλέον μία πιο πλήρης γλώσσα προγραμματισμού απο την έκδοση 2.0,μας δίνεται η δυνατότητα να οργανώσουμε το κώδικα μας σε εξωτερικά αρχεία κατάληξης .as
Με αυτό το τρόπο,απαλοίφουμε την επαναληψιμότητα και διμηουργούμε "σκελετούς" στους οποίους βασιζόμαστε για να δουλέψουμε στο αρχείο flash,χωρίς να χρειάζεται να επαναλαμβάνουμε αντικείμενα,πράξεις,συναρτήσεις κλπ
Η έννοια πίσω απο αυτή τη μέθοδο είναι απλή και αναφέρω το εξής παράδειγμα.

Έστω ένα πραγματικό αντικείμενο,η καρέκλα.Αυτή,αποτελείται απο το υλικό της που είναι το ξύλο,και απο επιμέρους κωμμάτια,όπως το καθισματάκι,τα πόδια της (4) και το στήριγμα της πλάτης.
Εάν επιθυμούσαμε να κατασκευάσουμε μία καρέκλα στο flash,θα μπορούσαμε να διμηουργήσουμε αυτα τα κωμμάτια και να τα τοποθετούμε κάθε φορά,ξανά και ξανά ωστε να επιτύχουμε τη διμηουργία του αντικειμένου.Και τι θα γινότανε,εάν θέλαμε πολλές τέτοιες καρέκλες?αν θέλαμε η κάθε μία καρέκλα να έχει διαφορετικές ιδιότητες?
Έτσι λοιπόν,οι κλάσεις μας δίνουν την ευκαιρία να ορίσουμε ένα γενικό πλαίσιο στο οποίο θα μπορούμε με έξυπνο τρόπο να χειριστούμε πχ τα κωμμάτια αυτής της καρέκλας,ολόκληρη τη καρέκλα,και τις επιμέρους ιδιότητες αυτών (ανάλογα με το τύπο - διατίθενται και διαφορετικές ιδιότητες)
Για το παράδειγμα μας,θα μπορούσαμε να ορίσουμε ένα γενικό αντικείμενο (στην ουσία μία συνάρτηση) η οποία θα αναφέρεται στο αντικείμενο της καρέκλας γενικότερα.
Εντός της,να έχουμε ιδιότητες για το κάθε αντικείμενο που την αποτελεί.
Έτσι,μέσω του flash UID , θα μπορέσουμε αργότερα,να να καλέσουμε το αντικείμενο αυτό και να δηλώσουμε μία νέα instance αυτού,με τις ιδιότητες που θέλουμε.

Αφήνοντας την έννοια και το παραπάνω παράδειγμα,ας ξεκινήσω να δείξω τις βασικές αρχές κατασκευής ενός αρχείου εξωτερικού κώδικα σε .as.

Πρώτο βήμα,είναι η διμηουργία ενός package που περικλύει τη κλάση.
ΠΡΟΣΟΧΗ: Το όνομα της κλάσης,θα πρέπει να είναι ταυτόσημο (case sencitive) με το όνομα του αρχείου .as που τη περιέχει.

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

package {

}
Επόμενο βήμα,η διμηουργία της κλάσης

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

package {
  public class test {
  
  }
}
Το αρχείο μας,σε αυτή τη φάση θα πρέπει να το σώσουμε με την ονομασία test.as
Παρατηρήσεις: Ο παραπάνω κώδικας μας μέχρι αυτό το σημείο,είναι στη πιο απλή μορφή ορισμού κλάσης.αργότερα,μπορούμε να εισάγουμε άλλες κλάσεις εντός της κλάσης που επεκτείνουν τις ιδιότητες της,όπως button controls,tween events κλπ. οι οποίες εισάγονται με τη δήλωση import εντός της κορυφής του package.
Επίσης,η κλάση που δηλώνουμε,πιθανόν να επεκτείνει την ιδιότητα κάποιας άλλης SUB-class είτε build-in του flash platform είτε δική μας που έχουμε κατασκευάσει προηγουμένος σε κάποιο συναφές με το path της κλάσης μας,directory.

Το επόμενο βήμα,είναι η διμηουργία μίας συνάρτησης,η οποία ονομάζεται constructor function και πρέπει να έχει το ίδιο όνομα ακριβώς με το όνομα του αρχείου επομένως και με το όνομα της κλάσης,στο παράδειγμα μας,test.

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

package {
  
  public class test {
    public function test( ) {
    
    }
  }
}
O constructor της κλάσης,θα πρέπει να είναι public και ο σκοπός της ύπαρξης του είναι πως τρέχει αυτόματα,κάθε φορά που ξεκινάει να αναπαράγεται το flash αρχείο το οποίο την έχει ώς κλάση του.

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

package {
  
  public class test {
    
    public function test( ) {
      trace("η κλάση λειτουργεί επιτυχώς");
    }
  }
}
Τί ορίζουμε public και τί είναι αυτό?Μεταβλητές εντός της κλάσης καθώς και συναρτήσεις εντός κλάσης,πρέπει να ορίζουμε απο "ποιον" είναι προσβάσιμες.Με αυτό το τρόπο,μία συνάρτηση μπορεί να ειναι προσβάσιμη για εκτέλεση μόνο εντός της κλάσης,ή εντός του flash runtime,και οι επιλογές ποικίλουν.Για την ακρίβεια,4 είναι οι επιλογές μας.Public,internal,protected και private στις οποίες και θα επεκταθώ στο δεύτερο μέρος του tutorial..

Ως τελευταίο βήμα για το αρχικό στάδιο μας,είναι να επισυνάψουμε τη κλάση στο αρχείο flash το οποίο επιθυμούμε.
Αυτό γίνεται πηγαίνοντας στο document properties και γράφοντας το όνομα του αρχείου της κλάσης test.as το οποίο σημειωτέον θα πρέπει να βρίσκεται στον ίδιο φάκελο (στο ίδιο επίπεδο δηλαδη) με το flash αρχείο (στην ουσία το fla)

Θα ακολουθήσει και δεύτερο μέρος στο οποίο θα επεκταθώ σε ζητήματα κλάσεων σχετικά με:
-προσβασιμότητα ορισμών εντός της κλάσης (private,internal..κλπ)
-Επεκτείνοντας τη κλάση ως προς MovieClip και ως προς Sprite..
-Ορίζοντας αντικείμενα με προσβάσιμες παραμέτρους απο το UID
-Δουλεύοντας με imports (ποια import πρέπει να κάνουμε add και πότε στη κλάση μας)



Δουλεύοντας με classes - Μέρος Β>>
Τελευταία επεξεργασία από το μέλος Maradonna την 10 Φεβ 2010 20:38, έχει επεξεργασθεί 2 φορές συνολικά.
Εικόνα
Code is poetry

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

[AS3.0] Δουλεύοντας με Classes (Α)

Δημοσίευση από HeRu » 10 Φεβ 2010 18:28

Ευχαριστούμε για το input!

Αν δεν σε πειράζει, ο τίτλος είναι καλύτερα να αλλάξει, μιας και στην ουσία δημιουργείς classes τα οποία ενσωματώνονται μέσα στο Flash.
Σου αλλάζω τον τίτλο και το κάνω βοήθημα :)

Άβαταρ μέλους
Maradonna
Δημοσιεύσεις: 135
Εγγραφή: 07 Ιουν 2007 03:19
Τοποθεσία: Αθήνα
Επικοινωνία:

[AS3.0] Δουλεύοντας με Classes (Α)

Δημοσίευση από Maradonna » 10 Φεβ 2010 20:45

;) thanks..
Εικόνα
Code is poetry

Απάντηση

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

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

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