Μαθήματα Πληροφορικής & Προγραμματισμού

Director – Τύποι των scripts, τα events, διακλαδώσεις

Οι Τύποι των Scripts και η Σειρά Εκτέλεσής τους

Οι Τύποι των scripts της Lingo που μπορούμε να γράψουμε σε μια εφαρμογή του Director είναι οι εξής :

scripts ειδώλων ή συμπεριφορές
scripts μέλη του cast
scripts πλαισίου
scripts ταινίας

Όλα τα scripts καταλαμβάνουν μια θέση στο παράθυρο Cast, εκτός από τα scripts μέλη cast. Τα scripts μελών του cast δεν μπορούν να χρησιμοποιηθούν από άλλα μέλη του cast, αλλά αποθηκεύονται με το μέλος του cast στο οποίο ανήκουν.

Τα scripts ειδώλου ανατίθενται σ’ ένα είδωλο στο score. Όταν θέλουμε να ελέγξουμε τις ενέργειες ενός μέλους του cast για ένα μικρό χροDiakνικό διάστημα ή για μια συγκεκριμένη ενότητα του score, δημιουργούμε ένα script ειδώλου.

Τα scripts πλαισίου ανατίθενται σ’ ένα συγκεκριμένο πλαίσιο στο score και τα χρησιμοποιούμε συνήθως για να δημιουργήσουμε χειριστές (handlers) που να είναι διαθέσιμοι σ’ όλο το πλαίσιο ή για να ελέγχουμε την κεφαλή αναπαραγωγής χωρίς να απαιτείται είσοδος από τον χρήστη. Η πιο συνηθισμένη χρήση για ένα script πλαισίου είναι να κρατά την κεφαλή αναπαραγωγής σ’ ένα πλαίσιο μέχρι να συμβεί ένα συμβάν, όπως ένα κλικ σ’ ένα πλήκτρο εντολής.

Τα scripts μελών του cast ανατίθενται σ’ ένα μέλος του cast και είναι χρήσιμα όταν θέλουμε το μέλος του cast να εκτελεί πάντα τον ίδιο κώδικα Lingo ανεξάρτητα από το πού εμφανίζεται μέσα στο score. Η πιο συνηθισμένη χρήση τους είναι για τη δημιουργία πλήκτρων εντολής σε μενού εφαρμογών.

Τέλος, τα scripts ταινιών διατίθενται σ’ όλη την ταινία, όταν αυτή αναπαράγεται και χρησιμοποιούνται συνήθως για να ελέγξουν το τι συμβαίνει όταν η ταινία εκκινεί, σταματά ή παύει προσωρινά.

Όταν λαμβάνει χώρα ένα συμβάν (event), το Director αποκρίνεται εκδίδοντας ένα μήνυμα με το ίδιο όνομα. Το μήνυμα αυτό ταξιδεύει με τη σειρά, μέσω scripts ειδώλων, scripts μελών του cast, scripts πλαισίων και scripts ταινίας, αναζητώντας έναν χειριστή (handler) με το ίδιο όνομα.

Το μήνυμα εκτελεί τον πρώτο χειριστή που συναντά και ο οποίος ταιριάζει και μετά το μήνυμα σταματά. Αν το Director δεν μπορεί να βρει έναν χειριστή γι’ αυτό το μήνυμα, απορρίπτει το μήνυμα και δεν συμβαίνει τίποτα.

Τα Σημαντικότερα Συμβάντα του Director

Τα σημαντικότερα από τα συμβάντα του Director είναι τα εξής :

prepareMovie
startMovie
stopMovie
prepareFrame
enterFrame
exitFrame
mouseDown
rightmouseDown
mouseUp
rightmouseUp
mouseEnter
mouseWithin
mouseLeave
keyDown
keyUp
beginSprite
endSprite
idle

Διακλάδωση σε Άλλη Ταινία

Μπορούμε να πάμε σε μια άλλη ταινία του Director κατά τη διάρκεια της αναπαραγωγής μιας ταινίας και μάλιστα όχι μόνο στο πρώτο πλαίσιο της ταινίας αλλά σ’ όποιο πλαίσιο θέλουμε. Οι εντολές που μπορούμε να χρησιμοποιήσουμε είναι οι εξής:

on mouseUp
    go to movie "intro2.dir"
end

on mouseUp
    go to frame "nextIntro" of movie "intro2.dir"
end

Η Δομή repeat while

Με τη δομή repeat while … end repeat μπορούμε να ελέγχουμε συνέχεια μια συνθήκη και όσο αυτή είναι αληθής να εκτελούμε κάποιες εντολές σ’ έναν βρόχο. Μόλις η συνθήκη γίνει ψευδής, βγαίνουμε από τον βρόχο.

on exitFrame
    repeat while the stilldown = TRUE
        nothing
    end repeat
end

Στο παραπάνω handler, η εντολή nothing δεν κάνει απολύτως τίποτα και η χρήση της είναι καθαρά διακοσμητική ενώ η συνάρτηση stilldown ελέγχει αν είναι πατημένο το αριστερό πλήκτρο του ποντικιού.

Μετακίνηση Ειδώλων με την Lingo

Οι ιδιότητες ειδώλου locH και locV επιστρέφουν την οριζόντια και την κατακόρυφη θέση ενός ειδώλου στη σκηνή σε pixels, αντίστοιχα. Με τη βοήθειά τους μπορούμε να μάθουμε και να ορίσουμε τη θέση ενός ειδώλου στη σκηνή και η σύνταξή τους είναι sprite(1).locH ή the locH of sprite 1.

Οι συντεταγμένες των ειδώλων ξεκινούν από την πάνω αριστερή γωνία της σκηνής, όπου βρίσκεται η θέση 0, 0 και τελειώνουν κάτω και δεξιά. Ο πρώτος αριθμός παριστά την οριζόντια τιμή και ο δεύτερος την κατακόρυφη. Η οριζόντια τιμή αυξάνει προς τα δεξιά και η κατακόρυφη προς τα κάτω.

Για να κάνουμε τώρα ένα είδωλο να μετακινείται στη σκηνή ενώ κάνουμε κλικ πάνω του και κρατάμε πατημένο το πλήκτρο του ποντικιού, επιλέγουμε το μέλος cast και ανοίγουμε το script του. Θα χρησιμοποιήσουμε τη συνάρτηση stillDown, η οποία ελέγχει αν πατάμε το πλήκτρο του ποντικιού. Αν πατάμε το πλήκτρο του ποντικιού, έχει την τιμή TRUE, διαφορετικά έχει την τιμή FALSE.

on mouseDown
    repeat while the mouseDown
        if rollOver(2) = TRUE then
            sprite(2).memberNum = 29
             repeat while the stillDown
                 sprite(1).locV = sprite(1).locV - 1
                 updateStage
             end repeat
        else
           sprite(2).memberNum = 28
        end if
        updateStage
    end repeat
    sprite(2).memberNum = 28
    updateStage
end

Προσθέσαμε απλώς έναν βρόχο που ελέγχει αν είναι πατημένο το πλήκτρο του ποντικιού και αν ναι, μετακινεί το είδωλο που βρίσκεται στο κανάλι 1 προς τα πάνω κατά 1 pixel. Χρησιμοποιήσαμε το συμβάν mouseDown για να είμαστε μέσα στο handler για όσο χρόνο παραμένει πατημένο το πλήκτρο του ποντικιού. Αν χρησιμοποιούσαμε το συμβάν mouseUp, θα έπρεπε να αφήνουμε το πλήκτρο του ποντικιού κάθε φορά για να ενεργοποιείται το συμβάν.

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

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.