Το Director έχει δημιουργηθεί από την
εταιρεία Macromedia όπως και το Authorware.
Ανήκει στην κατηγορία των Cast/Score/Scripting paradigm εργαλείων και προσφέρεται τόσο σε πλατφόρμα MS Windows όσο και σε Macintosh. Πρόκειται για ένα εργαλείο με
πολλές δυνατότητες, το οποίο έχει
χρησιμοποιηθεί στην κατασκευή πολλών εμπορικών εφαρμογών. Είναι πολύ καλό για
ανάπτυξη εφαρμογών που στηρίζονται στο animation, αλλά υστερεί στον χειρισμό
κειμένου και στη δημιουργία πολύπλοκων δομών ελέγχου της ροής της πληροφορίας
από τον χρήστη (navigation
intensive applications).
Όπως
ήδη αναφέραμε, το Director ακολουθεί το
παράδειγμα Cast/Score/Scripting. Η scripting language που περιέχει το Director ονομάζεται Lingo και βασίζεται στα αντικείμενα
(object-based language). Μια εφαρμογή
γραμμένη στο Director ονομάζεται ταινία (movie) και περιλαμβάνει τα παρακάτω στοιχεία:
· Το cast, δηλαδή τους "ηθοποιούς" που παίρνουν μέρος στην εφαρμογή. Το ρόλο ενός ηθοποιού μπορεί να παίξει ένα οποιοδήποτε αντικείμενο πληροφορίας: εικόνα, ήχος, βίντεο ή ακόμα και κάποιο script. Οι ηθοποιοί που αποτελούν το cast ονομάζονται μέλη του cast (cast members) ή για συντομία ηθοποιοί.
·
Τη
σκηνή (stage), δηλαδή το παράθυρο στο οποίο
παρουσιάζεται η εφαρμογή κατά την διάρκεια της συγγραφής της. Μετά την
ολοκλήρωση της συγγραφής, μπορεί να δημιουργηθεί ένα εκτελέσιμο αρχείο, το οποίο εκτελείται
ανεξάρτητα από το περιβάλλον ανάπτυξης, σε δικό του παράθυρο.
· Την παρτιτούρα (score). Η παρτιτούρα περιγράφει αναλυτικά τους ρόλους των διαφόρων ηθοποιών και έχει τη μορφή ενός διδιάστατου πίνακα. Η ταινία χωρίζεται σε πλαίσια (frames), τα οποία στην παρτιτούρα φαίνονται ως στήλες. Κάθε πλαίσιο είναι το άθροισμα όλης της πληροφορίας που υπάρχει στην αντίστοιχη στήλη της παρτιτούρας. Η κάθε γραμμή της παρτιτούρας ονομάζεται κανάλι (channel). Ένα κανάλι περιέχει κάποιο συγκεκριμένο είδος πληροφορίας. Υπάρχουν 5 κανάλια που ρυθμίζουν διάφορες παραμέτρους της ταινίας και 48 κανάλια που μπορούν να περιέχουν στιγμιότυπα ηθοποιών (βλ. παρακάτω). Κατά συνέπεια, ένα κελί (cell) της παρτιτούρας περιγράφει το ρόλο ενός ηθοποιού (sprite) (θέση, χρώμα ...) σε κάποιο πλαίσιο. Να σημειωθεί ότι ο ρόλος ενός μέλους του cast δεν είναι παρά ένα στιγμιότυπο (instance) του μέλους του cast, συν κάποιες επιπλέον ιδιότητες όπως η θέση του πάνω στη σκηνή και η συμπεριφορά του στις εισόδους του χρήστη (η οποία καθορίζεται, όπως θα δούμε στη συνέχεια, με χρήση των scripts). Είναι δυνατόν να υπάρχουν, σε κάποιο πλαίσιο, δύο στιγμιότυπα ενός μέλους του cast, τα οποία όμως έχουν διαφορετικούς ρόλους. Στη συνέχεια για λόγους συντομίας θα αναφερόμαστε στα στιγμιότυπα των ηθοποιών με τον όρο sprites.
Σχήμα 11-1. Τα βασικά στοιχεία του περιβάλλοντος εργασίας του Director
Για να εκτελεστεί η ταινία που είναι φορτωμένη στο Director, χρησιμοποιείται το παράθυρο Control Panel. Πάνω σε αυτό υπάρχουν οι τυπικές λειτουργίες που αναμένει κανείς από μια συσκευή αναπαραγωγής video.
Τις
ίδιες λειτουργίες μπορεί να επιτύχει κανείς με τις αντίστοιχες εντολές του
μενού Edit.
Σχήμα 11-2. Εργαλεία
ελέγχου της εκτέλεσης μιας ταινίας
Ο όρος ηθοποιός αναφέρεται σε όλα τα συστατικά που μπορούν περιέχονται σε μια ταινία του Director:
·
γραφικά
·
κείμενο
·
ηχητικά
εφέ
· μουσική MIDI
· χρωματικές παλέτες (color palettes)
· ψηφιακό video
·
κουμπιά
· scripts
Ένας
τρόπος για να δημιουργηθεί ένας ηθοποιός είναι η χρήση των ενσωματωμένων
εργαλείων του Director. Ας δούμε τι είδους
εργαλεία είναι διαθέσιμα.
To paint window, που φαίνεται στο Σχήμα 11-3 χρησιμοποιείται για τον σχεδιασμό γραφικών cast members, τα οποία μπορούν να περιέχουν και κείμενο. Περιέχει τα συνήθη εργαλεία που συναντώνται στα εξειδικευμένα σχεδιαστικά προγράμματα και μπορεί να χρησιμοποιηθεί με τον ίδιο τρόπο. Να τονιστεί ότι τα αντικείμενα που σχεδιάζονται, ενσωματώνονται στην εικόνα του cast member, η οποία είναι χαρτογραφική. Γραφικά αντικείμενα που διατηρούν τη δομή τους, σχεδιάζονται με τα εργαλεία του tools window.
Σε
αυτό το παράθυρο υπάρχουν ορισμένα εργαλεία που επιτρέπουν τον σχεδιασμό
γραφικών αντικειμένων. Αυτά τα αντικείμενα σχεδιάζονται απ’ ευθείας πάνω στη
σκηνή, όπως αυτή παρουσιάζεται σε κάποιο συγκεκριμένο πλαίσιο. Εκτός από απλά
σχήματα και κείμενο, μπορούν να σχεδιαστούν και μερικά στάνταρτ γραφικά
αντικείμενα αλληλεπίδρασης με το χρήση, όπως κουμπιά.
Σχήμα 11-3. Τα βασικά εργαλεία σχεδιασμού ηθοποιών
Για
να μπορεί ο σχεδιαστής της εφαρμογής να εκλέξει κάποιο άλλο εργαλείο για τη
δημιουργία των αντικειμένων της εφαρμογής, το Director επιτρέπει την εισαγωγή αντικειμένων,
οποιουδήποτε από τα προαναφερθέντα είδη,
που είναι αποθηκευμένα σε κάποιο γνωστό format. Μετά την εισαγωγή, το αντικείμενο εισάγεται
αυτόματα στο cast της εφαρμογής.
Σχήμα 11-4. Το
παράθυρο εισαγωγής ηθοποιών από
άλλες εφαρμογές
Η δημιουργία
ενός ηθοποιού, όποιον τρόπο και αν χρησιμοποιήσουμε, συνεπάγεται την αυτόματη
εισαγωγή του στο cast. Το παράθυρο cast window προσφέρει μια εποπτική
εικόνα του cast μιας ταινίας.
Σχήμα 11-5. Το cast window με τις λειτουργίες του
Όπως
φαίνεται και στο Σχήμα 11-5, ένας ηθοποιός έχει
έναν αύξων αριθμό, ο οποίος του ανατίθεται αυτόματα, μέσα στο cast καθώς και ένα όνομα, που το
επιλέγει ο χρήστης. Με τα αντίστοιχα κουμπιά που φαίνονται στο cast window είναι δυνατόν να καθοριστούν
οι ιδιότητες και τα scripts
ενός
ηθοποιού.
Το
επόμενο βήμα, κατά την συγγραφή ενός προγράμματος, είναι ο καθορισμός των ρόλων
των ηθοποιών, ή με άλλα λόγια, η εισαγωγή τους στην παρτιτούρα. Αυτό μπορεί να
γίνει εύκολα με δύο τρόπους:
·
Σύροντας
την εικόνα του ηθοποιού από το cast window
στο επιθυμητό κελί. Ταυτόχρονα, θα παρουσιαστεί ένα sprite στο κέντρο της σκηνής. Πρέπει στη συνέχεια να
το μετακινήσουμε στη σωστή θέση.
·
Σύροντας
την εικόνα του ηθοποιού στην επιθυμητή θέση πάνω στη σκηνή. Το νέο sprite θα τοποθετηθεί αυτόματα στο
τρέχον κελί που έχει επιλεχθεί στην παρτιτούρα. Η επιλογή ενός κελιού γίνεται
με click πάνω σε αυτό.
Έχοντας τοποθετήσει κάποιο sprite σε ένα κελί και κάνοντας click πάνω σε αυτό το κελί, η κεφαλή ανάγνωσης μετακινείται στο πλαίσιο του κελιού και στην σκηνή φαίνεται επιλεγμένο το sprite. Μπορούμε τώρα να αλλάξουμε τη θέση του. Έχοντας επιλεγμένο ένα κελί, μπορούμε να αλλάξουμε και άλλες ιδιότητες του, πέραν της θέσης του. Για παράδειγμα, στο Σχήμα 11-6 φαίνεται το Ink drop-down listbox, από όπου μπορούμε να επιλέξουμε το είδος του μελανιού του (διαφανές, αντίστροφο...). Οι επιλογές μπορούν να εφαρμοστούν μαζικά σε πολλά sprites αν έχουμε επιλέξει περισσότερα από ένα. Η επιλογή πολλών κελιών γίνεται με Shift+Click.
Το Director προσφέρει διάφορες τεχνικές δημιουργίας κίνησης. Σε αυτήν την ενότητα θα περιγράψουμε τις πιο βασικές.
Σχήμα 11-6. Η παρτιτούρα με τις λειτουργίες της
Αυτή
είναι η πιο απλή μέθοδος δημιουργίας animation. Εγγραφή
σε πραγματικό (real
time recording)
χρόνο σημαίνει ότι σύροντας ένα sprite
στην σκηνή, το Director ανιχνεύει τις
διαδοχικές θέσεις του αντικειμένου και τις καταγράφει σε διαδοχικά κελιά στην
παρτιτούρα. Η συχνότητα καταγραφής καθορίζεται στο control panel με την ρύθμιση ‘Tempo’. Η
εγγραφή γίνεται ως εξής:
· Επιλέγουμε το πλαίσιο από το οποίο θα ξεκινά το animation.
· Τοποθετούμε το sprite στη αρχική του θέση πάνω στη σκηνή και πατάμε Ctrl+Space για να ξεκινήσει η εγγραφή. Χωρίς να αφήσουμε τα κουμπιά, σύρουμε το αντικείμενο πάνω στη σκηνή δημιουργώντας την τροχιά που θέλουμε. Ταυτόχρονα, η ταινία παίζει κανονικά, για μπορούμε να συγχρονίσουμε την κίνηση του νέου αντικείμενου με τα είδη υπάρχοντα. Να σημειωθεί ότι κατά την εγγραφή, το Looping πρέπει να είναι απενεργοποιημένο (βλ. Σχήμα 11-2).
·
Μόλις
αφήσουμε τα κουμπιά και το πλήκτρο του ποντικιού, η εγγραφή σταματά. Μπορούμε
να δούμε στην παρτιτούρα τα νέα sprites που
εισήχθησαν και πιθανώς να τα διορθώσουμε.
Η
εγγραφή κατά βήματα (step recording) επιτρέπει την δημιουργία animation με μεγαλύτερη ακρίβεια. Η
αρχή λειτουργίας της είναι απλή: "φωτογραφίζονται" οι θέσεις ενός
ηθοποιού σε διαδοχικά πλαίσια της ταινίας. Ας δούμε τα απαραίτητα βήματα για τη
δημιουργία animation με αυτήν την τεχνική.
· Επιλέγουμε το αρχικό κελί του animation.
·
Τοποθετούμε
τον ηθοποιό στην αρχική του θέση πάνω στην σκηνή.
·
Έχοντας
πατημένο το Alt, κάνουμε click πάνω στο sprite του ηθοποιού. Η εγγραφή
ξεκινά.
·
Με
το κατάλληλο κουμπί στο control
panel (βλ.
Σχήμα 11-2) μετακινούμαστε στο
επόμενο πλαίσιο της ταινίας.
·
Μετακινούμε
το sprite στη νέα του θέση.
·
Επαναλαμβάνουμε
τα δύο προηγούμενα βήματα όσες φορές χρειαστεί.
· Για να τερματιστεί η εγγραφή, αρκεί να μετακινήσουμε την κεφαλή ανάγνωσης προς τα πίσω (είτε απ’ ευθείας πάνω στην παρτιτούρα σύροντας τη είτε από το control panel).
Αν
οι διαδοχικές θέσεις που έχουμε επιλέξει είναι σωστές, κατά το παίξιμο της
ταινίας θα φανεί ομαλή κίνηση.
Αντί
να καθορίζουμε εμείς τα ενδιάμεσα στάδια του animation, μπορούμε να αφήσουμε το Director να τα υπολογίσει. Ας δούμε
πως μπορεί να γίνει αυτό:
·
Επιλέγουμε
το πρώτο κελί του animation και τοποθετούμε το sprite στη αρχική του θέση.
· Στην συνέχεια κάνουμε τα ίδια και για το τελευταίο κελί και την τελευταία θέση του αντικειμένου στο animation.
·
Ως
τώρα ορίσαμε τα πλαίσια-κλειδιά (key frames), πάνω στα οποία θα στηριχθεί ο υπολογισμός των
ενδιάμεσων πλαισίων. Επιλέγουμε όλα τα κελιά που θα συμμετάσχουν στο animation και επιλέγουμε "Score_ In Between Linear". Αμέσως το Director γεμίζει την παρτιτούρα με τα
ενδιάμεσα πλαίσια.
Ο
υπολογισμός των ενδιάμεσων πλαισίων γίνεται έτσι ώστε η προκύπτουσα τροχιά να
είναι ευθεία γραμμή. Αν επιθυμούμε καμπύλη, πρέπει να χρησιμοποιηθεί η τεχνική του In-Between Special.
Με
χρήση του In-Between
special
είναι δυνατόν να δημιουργηθούν πιο πολύπλοκα animations. Στα πλαίσια αυτής της
παρουσίασης, δεν θα εξαντλήσουμε όλες τις δυνατότητες, απλά θα δούμε μερικά
χαρακτηριστικά παραδείγματα.
Αν
ακολουθήσουμε τα ίδια ακριβώς βήματα όπως και στην περίπτωση του In-Between Linear, αλλά εκτός από τα αρχικό και
τελικό πλαίσιο, καθορίσουμε και ένα ή περισσότερα ενδιάμεσα και επιλέξουμε το In-Between Special, μπορούμε να
καθοδηγήσουμε το Director στη δημιουργία
καμπύλων τροχιών. Για να γίνει αυτό πρέπει να τσεκάρουμε την επιλογή Location, όπως φαίνεται στο Σχήμα 11-7. Η καμπυλότητα της
τροχιάς καθορίζεται σύροντας το path slider. Με
το κουπί ‘Preview Path’ παρουσιάζεται πάνω
στη σκηνή η τροχιά που θα δημιουργηθεί με τις υπάρχουσες επιλογές.
Με
τις επιλογές που προσφέρει το In-Between Special, μπορούμε
να επιτύχουμε διάφορα εφέ που καθιστούν το animation πιο ρεαλιστικό. Ας δούμε δύο
παραδείγματα:
·
Καθορίζουμε
το αρχικό και τελικό κελί (πιθανώς και μερικά ενδιάμεσα) όπως και παραπάνω.
Επιλέγουμε όλα τα κελιά που θα λάβουν μέρος στο animation και ορίζουμε ως μελάνι τους το Blend. Με χρήση της επιλογής ‘Set Sprite Blend’ του μενού ‘Score’, καθορίζουμε ως blend value του αρχικού κελιού το 100%
και του τελικού το 0%. Στη συνέχεια επιλέγουμε όλα τα κελιά και καλούμε την
λειτουργία In-Between
Special. Αυτή
τη φορά τσεκάρουμε την επιλογή Blend καθώς
και την Location. Καθορίζουμε την
καμπύλη της τροχιάς όπως πριν και πατούμε OK. Τώρα το αντικείμενο, καθώς κινείται στην τροχιά,
θα εξαφανίζεται σιγά-σιγά.
Σχήμα 11-7. Το παράθυρο διαλόγου της επιλογής "In Between Special"
·
Μπορούμε
με παρόμοιο τρόπο να κάνουμε το αντικείμενο να μικραίνει καθώς κινείται, ώστε
να δίνεται η εντύπωση ότι απομακρύνεται. Αυτό γίνεται ως εξής: Καλούμε το
παράθυρο με τις ιδιότητες του αρχικού
και τελικού sprite και ορίζουμε ως
τιμές της επιλογής Scale τα 100% και
0% αντίστοιχα. Αυτό σημαίνει ότι το αρχικό sprite έχει ακριβώς το ίδιο μέγεθος με τον ηθοποιό από
τον οποίο πηγάζει, ενώ το τελευταίο πρακτικά δεν φαίνεται στην οθόνη. Αν στο
παράθυρο του In-Between
Special
τσεκάρουμε και την επιλογή Size, το
Director θα μικραίνει το
μέγεθος του sprite καθώς αυτό κινείται,
μέχρι να εξαφανιστεί τελείως.
·
Από
την ομάδα επιλογών Acceleration του παραθύρου In-Between Special, μπορούμε επιπλέον να
καθορίσουμε επιτάχυνση ή επιβράδυνση της κίνησης κατά την πορεία ενός
αντικειμένου.
Στις
προηγούμενες περιπτώσεις, το animation αποτελείτο
από έναν μόνο ηθοποιό. Το μειονέκτημα αυτής της μεθόδου είναι ότι το
αντικείμενο, κατά την κίνηση του, δεν αλλάζει μορφή. Κατά συνέπεια, στις
περισσότερες περιπτώσεις το animation δεν
θα είναι ρεαλιστικό. Μπορούμε να δημιουργήσουμε μια ομάδα ηθοποιών, οι οποίοι
αντιστοιχούν στις διαδοχικές μορφές που παίρνει το αντικείμενο κατά την κίνηση.
Στο Σχήμα 11-8 βλέπουμε μια τετράδα
ηθοποιών που θα χρησιμοποιηθούν για τη δημιουργία animation που δείχνει ένα πουλί να πετά.
Σχήμα 11-8. Παράδειγμα
ηθοποιών που αποτελούν τις διαδοχικές μορφές που παίρνει
ένα αντικείμενο κατά την κίνηση του
Ακολουθούμε
τα παρακάτω βήματα:
·
Δουλεύουμε
μόνο στο αρχικό πλαίσιο του animation. Αυτό
το κάνουμε ώστε να βλέπουμε όλες τις φάσεις της κίνησης και να τοποθετούμε σε
καλές θέσεις τους ηθοποιούς.
· Αφού ολοκληρώσουμε
την τοποθέτηση των ηθοποιών στην σκηνή, θα πρέπει να μετατρέψουμε την χωρική
(στο ίδιο πλαίσιο, αλλά σε άλλες θέσεις) εξάρτηση των ηθοποιών, σε χρονική
(ίδιο κανάλι, διαφορετικά πλαίσια). Επιλέγουμε όλα τα κελιά που αποτελούν το animation και καλούμε τη λειτουργία "Score_Space to Time".
Ένα
film loop είναι μια αλληλουχία
ηθοποιών, η οποία μπορεί να αντιμετωπιστεί ως ένας ηθοποιός. Για να
δημιουργήσούμε ένα film loop, εκτελούμε τα δύο
βήματα που περιγράψαμε αμέσως πριν για τη δημιουργία animation με πολλούς ηθοποιούς. Στη συνέχεια, επιλέγουμε τα κελιά και τα σύρουμε
σε μια άδεια θέση του cast
window.
Έχοντας δημιουργήσει ένα film loop, μπορούμε να
χρησιμοποιήσουμε σε συνδυασμό με το In-Between Linear και
το In-Between Special για να αποφύγουμε
τον χειροκίνητο καθορισμό όλως των ενδιάμεσων διαδοχικών πλαισίων.
Όσον αφορά στο
κείμενο, δεν έχουμε να πούμε πολλά. Να τονίσουμε απλώς ότι υπάρχουν δύο τρόποι
χειρισμού του κειμένου. Το κείμενο που δημιουργείται μέσα από το paint window, μετατρέπεται σε bitmap εικόνα άρα δεν μπορούμε να το διορθώσουμε
εύκολα. Αντίθετα, το κείμενο που δημιουργείται με το tools window, διατηρεί τη δομή του και
μπορούμε να το διορθώσουμε εύκολα κάνοντας click πάνω σε αυτό. Κατά τα άλλα, υπάρχουν πολλές
δυνατότητες συνδυασμού του κειμένου με εικόνες και κατάλληλα μελάνια ώστε να
δημιουργηθούν διάφορα οπτικά εφέ.
Σχήμα 11-9. Το αποτέλεσμα της λειτουργίας "Score_Space to Time"
Οι
ήχοι στο Director εισάγονται με την
εντολή "File_Import" (βλ.
Σχήμα 11-4). Όπως και όλα τα
αντικείμενα που αποτελούν μια ταινία, έτσι και οι ήχοι εισάγονται αυτόματα στο cast window. Ο χειρισμός τους είναι,
όμως, λίγο διαφορετικός.
Καταρχήν,
υπάρχουν μόνο δύο κανάλια που μπορούν να δεχθούν ήχους (βλ. Σχήμα 11-6). Για να εισάγουμε
έναν ήχο στην παρτιτούρα, επιλέγουμε το επιθυμητό κελί και εκτελούμε τη λειτουργία
"Score_Set Sound". Από το παράθυρο που
ανοίγει, επιλέγουμε κάποιον από τους διαθέσιμους ήχους.
Σχήμα 11-10. Παράθυρα διαλόγου για το χειρισμό ήχων
Όταν η ταινία
φτάσει στο frame που
έχουμε τοποθετήσει το ηθοποιό-ήχο, ξεκινά ο ήχος. Με τη μετάβαση στο επόμενο
πλαίσιο, ο ήχος διακόπτεται αν δεν έχει ολοκληρώσει. Αν θέλουμε να μην γίνει
μετάβαση της ταινίας στο επόμενο πλαίσιο, αν δεν έχει ολοκληρωθεί ο ήχος, τότε
πρέπει να χρησιμοποιήσουμε το κανάλι συγχρονισμού (βλ Σχήμα 11-6). Επιλέγουμε το κελί
του καναλιού συγχρονισμού που βρίσκεται στο ίδιο πλαίσιο με τον ήχο. Επιλέγουμε
τη λειτουργία "Score_Set
Tempo".
Στο παράθυρο που ανοίγει τσεκάρουμε την επιλογή "Wait for Sound1 to Finish"(αν ο ήχος μας
βρίσκεται στο ηχητικό κανάλι 1). Τώρα θα ολοκληρώνεται ο ήχος πριν συνεχίσει η
ταινία.
Σχήμα 11-11. Επιλογές καθορισμού του tempo
Περισσότερες δυνατότητες χειρισμού ήχων προσφέρει η scripting language του Director, η Lingo.
Βασικό
ζητούμενο από μια εφαρμογή πολυμέσων είναι η δυνατότητα αλληλεπίδρασης με το
χρήστη. Στην περίπτωση των ταινιών του Director, πρέπει να δίδεται η δυνατότητα στο χρήστη να
ελέγξει τη ροή τους. Τις περισσότερες φορές ο χρήστης απλώς παρακολουθεί μια
ταινία από την αρχή ως το τέλος,
ρυθμίζοντας μόνο το ρυθμό μετάβασης από το ένα μέρος στο επόμενο.
Τέτοιου είδους αλληλεπίδραση είναι πολύ εύκολο να επιτευχθεί διαμέσου των
επιλογών του tempo. Μια πιο σύνθετη
μορφή αλληλεπίδρασης είναι ο έλεγχος της ροής
της ταινίας μέσω κουμπιών "Επόμενο"' και
"Προηγούμενο". Επίσης, με κουμπιά μπορούν να υλοποιηθούν και πιο
σύνθετα μοντέλα ελέγχου της ταινίας, όπως η δημιουργία διακλαδώσεων, όπου ο
χρήστης μπορεί να διαλέξει αυτό που θα δει στη συνέχεια. Και στις δυο αυτές
περιπτώσεις, καθώς και σε άλλες πιο σύνθετες που δεν θα εξετάσουμε σε αυτήν την
παρουσίαση, απαιτείται η συγγραφή μικρών scripts. Αν και η Lingo προσθέτει πολλές δυνατότητες στις ταινίες του Director, η χρήση της είναι απλή και συνήθως
απαιτείται πολύ λίγος κώδικας.
Στο
Σχήμα 11-11 φαίνεται η επιλογή "Wait for Mouse Click or
Key". Αυτή
η επιλογή έχει το εξής αποτέλεσμα: μόλις η ταινία φτάσει στο πλαίσιο όπου έχει
γίνει αυτή η επιλογή, η ταινία σταματά μέχρι να πατήσει ο χρήστης το κουμπί του
ποντικιού ή ένα πλήκτρο του πληκτρολογίου. Αυτή είναι η απλούστερη δυνατότητα
αλληλεπίδρασης με το χρήστη, η οποία έχει το μειονέκτημα ότι ο χρήστης μπορεί
να επιλέξει μετακίνηση προς μια μόνο κατεύθυνση: μπροστά.
Όλα
τα στοιχεία που συμμετέχουν σε μια ταινία, μπορούν να αναγνωρίζουν κάποια
γεγονότα, για παράδειγμα τα click του
ποντικιού. Μόλις αναγνωρισθεί ένα γεγονός, το αντικείμενο μπορεί να έχει κάποια
εγγενή απάντηση που θα εκτελεστεί αμέσως. Στη συνέχεια θα αναζητηθεί κάποιο script με το ίδιο όνομα, το οποίο,
αν βρεθεί, θα εκτελεστεί. Αυτή η τεχνική προγραμματισμού ονομάζεται event driven programming και θα δούμε δύο
χαρακτηριστικά παραδείγματα εφαρμογής της: την υλοποίηση κουμπιών και hypertext links.
Στο Σχήμα 11-3 φαίνεται το tools windows. Ένα από τα εργαλεία του
επιτρέπει το σχεδιασμό κουμπιών. Σχεδιάζοντας ένα κουμπί πάνω στην οθόνη,
προκύπτει ένα γραφικό αντικείμενο που
απλώς αναγνωρίζει και αντιδρά στα clicks
του ποντικιού με κάποιο οπτικό εφέ. Για να λειτουργήσει ως πραγματικό κουμπί, πρέπει να του δοθούν
οδηγίες σε σχέση με την απόκριση του στο click του ποντικιού. Το αντίστοιχο script ονομάζεται "On Mouse Up". Διαλέγοντας το
ηθοποιό-κουμπί στο cast
window και
πατώντας το κουμπί για τα scripts,
ανοίγει ένα παράθυρο στο οποίο το default script είναι το ζητούμενο.
Σχήμα 11-12. Παράθυρο συγγραφής των scripts
Στο Σχήμα 11-12 βλέπουμε ότι το script που έχει γραφεί είναι: go to frame
"Crowd". Σύμφωνα με την εντολή
αυτή, η ταινία θα μεταβεί στο πλαίσιο με το όνομα "Crowd". Για να δώσουμε ένα όνομα ή ταμπέλα (marker) σε ένα πλαίσιο, σύρουμε το Marker Well (βλ Σχήμα 11-13) στο ζητούμενο πλαίσιο και
συμπληρώνουμε το όνομα.
Σχήμα 11-13. Εισαγωγή ταμπελών πλαισίων
Αντί
για το όνομα, θα μπορούσαμε να
είχαμε χρησιμοποιήσει τον αριθμό του πλαισίου: π.χ.
go to
frame 85.
Αυτή η προσέγγιση έχει το μειονέκτημα ότι αν αφαιρεθεί ή προστεθεί ένα πλαίσιο
πριν από το 85ο, το script δεν
θα επιτυγχάνει άλμα στο επιθυμητό πλαίσιο.
Αν για κάποιο λόγο θέλουμε να επιστρέψουμε στο σημείο όπου έγινε το άλμα, υπάρχει η εντολή της Lingo play done.
Η
τεχνική που περιγράψαμε για τη δημιουργία κουμπιών μπορεί να γενικευτεί και για
όλα τα αντικείμενα μιας ταινίας του animator, αφού
όλα αναγνωρίζουν τα
click του
ποντικιού. Είναι συνεπώς πολύ εύκολο, ακολουθώντας ακριβώς τα ίδια βήματα όπως
πριν, να φτιάξουμε έναν
hypertext
σύνδεσμο ο οποίος αποτελείται από ένα ολόκληρο text block. Αν θέλουμε ο hypertext σύνδεσμος να αποτελείται από
μια οποιαδήποτε λέξη ενός text block,
μπορούμε να χρησιμοποιήσουμε ένα διαφανές πλαίσιο χωρίς περίγραμμα, το οποίο
περικλείει τη ζητούμενη λέξη, ως κουμπί.
Έχουμε
ήδη τονίσει τη διαφορά ενός ηθοποιού και ενός sprite. Στις προηγούμενες περιπτώσεις, το script σχετίστηκε με έναν ηθοποιό
(το κουμπί) μέσω του cast
window. Αν
έχουμε πολλά κουμπιά, αντί να χρησιμοποιούμε πολλούς ηθοποιούς, μπορούμε να
χρησιμοποιούμε τον ίδιο, αλλά να αναθέτουμε διαφορετικά scripts στα sprites του ηθοποιού (sprite scripts). Για να δημιουργήσουμε ένα
καινούργιο script για κάποιο sprite, το επιλέγουμε στην παρτιτούρα
και κατόπιν επιλέγουμε "New" από το Script pop up menu (βλ. Σχήμα 11-14).
Σχήμα
11-14. Δημιουργία
ενός νέου sprite script
Υπάρχουν
και περιπτώσεις, στις οποίες το script
δεν αναφέρεται ούτε σε κάποιον ηθοποιό ούτε σε κάποιο sprite, αλλά σε πλαίσιο της ταινίας. Για αυτές τις
περιπτώσεις υπάρχει το script
channel. Για
παράδειγμα, όταν δημιουργούμε ένα κουμπί, θέλουμε η ταινία να σταματά στο
πλαίσιο όπου έχει εισαχθεί το κουμπί για να δοθεί η ευκαιρία στο χρήστη να
κάνει την επιλογή του. Αυτό μπορεί να γίνει αν στο default script του πλαισίου "On ExitFrame" εισάγουμε την εντολή pause.
Υπάρχουν
δύο τρόποι διανομής μιας εφαρμογής: η δημιουργία ενός projector, δηλαδή ενός
εκτελέσιμου αρχείου, και η δημιουργίας μιας συμπιεσμένης ταινίας, που μπορεί να
παιχθεί μέσα από κάποιο WWW Browser που υποστηρίζει το Shokwave.
Η
επιλογή "File_Create
Package" εμφανίζει
το παράθυρο διαλόγου που φαίνεται στο Σχήμα 11-15. Από εκεί μπορούν να επιλεχθούν οι ταινίες
που θα εισαχθούν στο projector.
Οι
ταινίες σε ένα projector παίζονται σειριακά η
μια μετά την άλλη, με τη σειρά εμφάνισης τους στη λίστα. Μια άλλη δυνατότητα
είναι να παιχτεί μόνο η πρώτη. Σε
αυτήν την περίπτωση, οι άλλες ταινίες θα
πρέπει να καλούνται μέσα από την πρώτη, με χρήση κάποιου script. Στο Σχήμα 11-15 φαίνονται και άλλες
επιλογές που αφορούν ένα projector.
Με
την τεχνολογία του Shokwave της Macromedia, είναι δυνατόν να εμπλουτιστεί
ένας WWW Browser με τη δυνατότητα να
αναπαράγει ταινίες που έχουν δημιουργηθεί μέσα από το Director (και το AuthorWare). Αυτό σημαίνει ότι σε μια
σελίδα HTML είναι δυνατόν να
περιλαμβάνονται και ταινίες του Director,
με τον ίδιο τρόπο όπως και οι απλές
εικόνες. Υπάρχουν βέβαια
κάποιοι περιορισμοί, όμως τα περισσότερα χαρακτηριστικά των ταινιών του Director διατηρούνται. Επιπλέον, η Lingo έχει εμπλουτιστεί, ώστε να
επιτρέπονται και ενέργειες που έχουν σχέση με δίκτυα. Για να μπορεί να
διαβαστεί μια ταινία από κάποιον WWW Browser,
πρέπει πρώτα να μετατραπεί σε μορφή "Shokwave". Αυτό γίνεται μέσω ενός
εξωτερικού προγράμματος, που ονομάζεται AfterBurner. To AfterBurner αποτελείται από δύο μόνο
παράθυρα διαλόγου, στα οποία ζητείται το αρχείο πηγής (ταινία
του Director, *.dir) και
το όνομα του αρχείου προορισμού (*.dcr). Το σημαντικότερο πρόβλημα που
παρουσιάζει αυτή η τεχνική, είναι η ταχύτητα μετάδοσης των ταινιών. Μια ταινία
μπορεί να περιέχει πολλά γραφικά και να έχει μεγάλη διάρκεια, πράγμα που
συνεπάγεται μεγάλο μέγεθος, απαγορευτικό για μετάδοση μέσω συνήθων WAN. Γι' αυτό το λόγο, το AfterBurner συμπιέζει όσο γίνεται την
εφαρμογή. Παρ' όλα αυτά, είναι σκόπιμο οι ταινίες να είναι σύντομες. Συνήθης χρήση του Shokwave είναι η δημιουργία οπτικών εφέ και γενικότερα η
οπτική βελτίωση της σελίδας. Δεν είναι χρήσιμο να διανέμονται πλήρεις εφαρμογές
με αυτόν το τρόπο.
Σχήμα 11-15. H λειτουργία του Afterburner