Macromedia Director

Το Director έχει δημιουργηθεί από την εταιρεία Macromedia όπως και το Authorware. Ανήκει στην κατηγορία των Cast/Score/Scripting paradigm εργαλείων και προσφέρεται τόσο σε πλατφόρμα MS Windows όσο και σε Macintosh. Πρόκειται για ένα  εργαλείο με πολλές δυνατότητες, το οποίο έχει χρησιμοποιηθεί στην κατασκευή πολλών εμπορικών εφαρμογών. Είναι πολύ καλό για ανάπτυξη εφαρμογών που στηρίζονται στο animation, αλλά υστερεί στον χειρισμό κειμένου και στη δημιουργία πολύπλοκων δομών ελέγχου της ροής της πληροφορίας από τον χρήστη (navigation intensive applications).

Βασικά Στοιχεία Προγραμματισμού στο Director

Όπως ήδη αναφέραμε, το 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. Ας δούμε τι είδους εργαλεία είναι διαθέσιμα.

Εργαλεία δημιουργίας Ηθοποιών

Paint Window

To paint window, που φαίνεται στο Σχήμα 11-3 χρησιμοποιείται για τον σχεδιασμό γραφικών cast members, τα οποία μπορούν να περιέχουν και κείμενο. Περιέχει τα συνήθη εργαλεία που συναντώνται στα εξειδικευμένα σχεδιαστικά προγράμματα και μπορεί να χρησιμοποιηθεί με τον ίδιο τρόπο. Να τονιστεί ότι τα αντικείμενα που σχεδιάζονται, ενσωματώνονται στην εικόνα του cast member, η οποία είναι χαρτογραφική. Γραφικά αντικείμενα που διατηρούν τη δομή τους, σχεδιάζονται με τα εργαλεία του tools window.

Tools Window

Σε αυτό το παράθυρο υπάρχουν ορισμένα εργαλεία που επιτρέπουν τον σχεδιασμό γραφικών αντικειμένων. Αυτά τα αντικείμενα σχεδιάζονται απ’ ευθείας πάνω στη σκηνή, όπως αυτή παρουσιάζεται σε κάποιο συγκεκριμένο πλαίσιο. Εκτός από απλά σχήματα και κείμενο, μπορούν να σχεδιαστούν και μερικά στάνταρτ γραφικά αντικείμενα αλληλεπίδρασης με το χρήση, όπως κουμπιά.


 


Σχήμα 11-3. Τα βασικά εργαλεία σχεδιασμού ηθοποιών

Εισαγωγή (Import) cast member

Για να μπορεί ο σχεδιαστής της εφαρμογής να εκλέξει κάποιο άλλο εργαλείο για τη δημιουργία των αντικειμένων της εφαρμογής, το 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.

Βασικές Τεχνικές Animation

Το 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 with In-Between Linear

Αντί να καθορίζουμε εμείς τα ενδιάμεσα στάδια του animation, μπορούμε να αφήσουμε το Director να τα υπολογίσει. Ας δούμε πως μπορεί να γίνει αυτό:

·       Επιλέγουμε το πρώτο κελί του animation και τοποθετούμε το sprite στη αρχική του θέση.

·       Στην συνέχεια κάνουμε τα ίδια και για το τελευταίο κελί και την τελευταία θέση του αντικειμένου στο animation.

·       Ως τώρα ορίσαμε τα πλαίσια-κλειδιά (key frames), πάνω στα οποία θα στηριχθεί ο υπολογισμός των ενδιάμεσων πλαισίων. Επιλέγουμε όλα τα κελιά που θα συμμετάσχουν στο animation και επιλέγουμε "Score_ In Between Linear". Αμέσως το Director γεμίζει την παρτιτούρα με τα ενδιάμεσα πλαίσια.

Ο υπολογισμός των ενδιάμεσων πλαισίων γίνεται έτσι ώστε η προκύπτουσα τροχιά να είναι ευθεία γραμμή. Αν επιθυμούμε καμπύλη, πρέπει  να χρησιμοποιηθεί η τεχνική του In-Between Special.

Animation with 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 αποτελείτο από έναν μόνο ηθοποιό. Το μειονέκτημα αυτής της μεθόδου είναι ότι το αντικείμενο, κατά την κίνηση του, δεν αλλάζει μορφή. Κατά συνέπεια, στις περισσότερες περιπτώσεις το animation δεν θα είναι ρεαλιστικό. Μπορούμε να δημιουργήσουμε μια ομάδα ηθοποιών, οι οποίοι αντιστοιχούν στις διαδοχικές μορφές που παίρνει το αντικείμενο κατά την κίνηση. Στο Σχήμα 11-8 βλέπουμε μια τετράδα ηθοποιών που θα χρησιμοποιηθούν για τη δημιουργία animation που δείχνει ένα πουλί να πετά.


 


Σχήμα 11-8. Παράδειγμα ηθοποιών που αποτελούν τις διαδοχικές μορφές που παίρνει
 ένα αντικείμενο κατά την κίνηση του

Ακολουθούμε τα παρακάτω βήματα:

·       Δουλεύουμε μόνο στο αρχικό πλαίσιο του animation. Αυτό το κάνουμε ώστε να βλέπουμε όλες τις φάσεις της κίνησης και να τοποθετούμε σε καλές θέσεις τους ηθοποιούς.

·       Αφού ολοκληρώσουμε την τοποθέτηση των ηθοποιών στην σκηνή, θα πρέπει να μετατρέψουμε την χωρική (στο ίδιο πλαίσιο, αλλά σε άλλες θέσεις) εξάρτηση των ηθοποιών, σε χρονική (ίδιο κανάλι, διαφορετικά πλαίσια). Επιλέγουμε όλα τα κελιά που αποτελούν το animation και καλούμε τη λειτουργία "Score_Space to Time".

Δημιουργία film loop

Ένα 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, η χρήση της είναι απλή και συνήθως απαιτείται πολύ λίγος κώδικας.

Έλεγχος της Ροής Μέσω του Tempo Channel

Στο Σχήμα 11-11 φαίνεται η επιλογή "Wait for Mouse Click or Key". Αυτή η επιλογή έχει το εξής αποτέλεσμα: μόλις η ταινία φτάσει στο πλαίσιο όπου έχει γίνει αυτή η επιλογή, η ταινία σταματά μέχρι να πατήσει ο χρήστης το κουμπί του ποντικιού ή ένα πλήκτρο του πληκτρολογίου. Αυτή είναι η απλούστερη δυνατότητα αλληλεπίδρασης με το χρήστη, η οποία έχει το μειονέκτημα ότι ο χρήστης μπορεί να επιλέξει μετακίνηση προς μια μόνο κατεύθυνση: μπροστά.

Έλεγχος της Ροής Μέσω Scripts

Όλα τα στοιχεία που συμμετέχουν σε μια ταινία, μπορούν να αναγνωρίζουν κάποια γεγονότα, για παράδειγμα τα 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.

Δημιουργία Hypertext Συνδέσμων

Η τεχνική που περιγράψαμε για τη δημιουργία κουμπιών μπορεί να γενικευτεί και για όλα τα αντικείμενα μιας ταινίας του animator, αφού όλα αναγνωρίζουν τα click του ποντικιού. Είναι συνεπώς πολύ εύκολο, ακολουθώντας ακριβώς τα ίδια βήματα όπως πριν, να φτιάξουμε έναν hypertext σύνδεσμο ο οποίος αποτελείται από ένα ολόκληρο text block. Αν θέλουμε ο hypertext σύνδεσμος να αποτελείται από μια οποιαδήποτε λέξη ενός text block, μπορούμε να χρησιμοποιήσουμε ένα διαφανές πλαίσιο χωρίς περίγραμμα, το οποίο περικλείει τη ζητούμενη λέξη, ως κουμπί.

Scripts Σχετισμένα σε Ηθοποιούς και σε Sprites

Έχουμε ήδη τονίσει τη διαφορά ενός ηθοποιού και ενός sprite. Στις προηγούμενες περιπτώσεις, το script σχετίστηκε με έναν ηθοποιό (το κουμπί) μέσω του cast window. Αν έχουμε πολλά κουμπιά, αντί να χρησιμοποιούμε πολλούς ηθοποιούς, μπορούμε να χρησιμοποιούμε τον ίδιο, αλλά να αναθέτουμε διαφορετικά scripts στα sprites του ηθοποιού (sprite scripts). Για να δημιουργήσουμε ένα καινούργιο script για κάποιο sprite, το επιλέγουμε στην παρτιτούρα και κατόπιν επιλέγουμε "New" από το Script pop up menu (βλ. Σχήμα 11-14).


Σχήμα 11-14. Δημιουργία ενός νέου sprite script

Script Channel

Υπάρχουν και περιπτώσεις, στις οποίες το script δεν αναφέρεται ούτε σε κάποιον ηθοποιό ούτε σε κάποιο sprite, αλλά σε πλαίσιο της ταινίας. Για αυτές τις περιπτώσεις υπάρχει το script channel. Για παράδειγμα, όταν δημιουργούμε ένα κουμπί, θέλουμε η ταινία να σταματά στο πλαίσιο όπου έχει εισαχθεί το κουμπί για να δοθεί η ευκαιρία στο χρήστη να κάνει την επιλογή του. Αυτό μπορεί να γίνει αν στο default script του πλαισίου "On ExitFrame" εισάγουμε την εντολή pause.

Διανομή της Εφαρμογής

Υπάρχουν δύο τρόποι διανομής μιας εφαρμογής: η δημιουργία ενός projector, δηλαδή ενός εκτελέσιμου αρχείου, και η δημιουργίας μιας συμπιεσμένης ταινίας, που μπορεί να παιχθεί μέσα από κάποιο WWW Browser που υποστηρίζει το Shokwave.

Projector

Η επιλογή "File_Create Package" εμφανίζει το παράθυρο διαλόγου που φαίνεται στο Σχήμα 11-15.  Από εκεί μπορούν να επιλεχθούν οι ταινίες που θα εισαχθούν στο projector. Οι ταινίες σε ένα projector παίζονται σειριακά η μια μετά την άλλη, με τη σειρά εμφάνισης τους στη λίστα. Μια άλλη δυνατότητα είναι να παιχτεί μόνο η πρώτη. Σε αυτήν την περίπτωση, οι άλλες ταινίες θα πρέπει να καλούνται μέσα από την πρώτη, με χρήση κάποιου script. Στο Σχήμα 11-15 φαίνονται και άλλες επιλογές που αφορούν ένα projector.

Shokwave

Με την τεχνολογία του 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