[AS2] Actionscript, Γνωριμία (terminology)

ActionScript και Flex Προγραμματισμός

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

Απάντηση
spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από spookyb52 » 11 Φεβ 2004 17:46

Επειδή το flash χωρίς την actionscript δέν είναι παρά ένα όμορφο πρόγραμμα για animation χωρίς όμως ιδιαίτερες δυνατότητες......................

Θα περιγράψω διάφορα για τη σύνταξη, τα πώς και γιατί. Θεωρώ οτι γνωρίζεται πώς δημιουργούνται buttons, movie clips, frames, keyframes, scenes κτλ. ( Δέν θα τα περιγράψω εδώ, πειραματιστείτε και θα βρείτε άκρη σίγουρα )

Απο τα παρακάτω θα ξεκινήσετε. Πρώτα η γνωριμία και η ορθή σύνταξη και μετά οι εντολές. Κάποια στιγμή θα γράψω κάτι και για τις εντολές. :)


ΠΡΟΣΟΧΗ : Σε κάποια σημεία θα δείτε οτι ό κώδικας είναι γραμμένος διαφορετικά ΠΧ

on (release) {
gotoAndStop(1);
}

και :
on (release){gotoAndStop(1);}

Είναι το ίδιο πράγμα απλά στην πρώτη περίπτωση έχει στοιχηθεί απο το flash. Μπορείτε να το κάνετε και μόνοι σας αλλάζοντας γραμμή στα κατάλληλα σημεία η στο τέλος πατ΄ντας το κουμπί auto format που βρίσκεται δίπλα απο το κουμπί διόρθωσης (check syntax).

Δείτε και την παρακάτω φώτο. Τά check syntax και auto format βρίσκονται κάτω απο τους κόκκινους αριθμούς 1 και 2 αντίστοιχα. Βλεπεται οτι η σύνταξη είναι σωστή.


----------------------

ACTIONS, ενέργειες

Οι γραμμές που συναντάμε μέσα στο κείμενο του κώδικα και ουσιατικά αποτελούν την καρδιά του καθώς αυτές του λένε να κάνει κατι. Βρίσκονται μέσα σε αγκυλες και χωρίζονται συνήθως απο ερωτηματικα

Παραδείγματα :

target = 1;

spaceship.gotoAndPlay(12);

Και για να το δείξω και μέσα σε ένα button :

on (release) {gotoAndPlay(12);}

----------------------
OPERATORS η τελεστές ( >> , >, &, &&, +, -, =, κτλ. )

Είναι τα σύμβολα με τα οποία συνδέονται τα στοιχεία στην actionscript

Παραδείγματα :

Score = 300;
Δίνει στο variable ( μεταβλητή ) με όνομα Score την τιμή 300

score < highscore
Ρωτάει άν το score είναι μικρότερο απο το highscore

final.text = score 1 + score 2;
Δίνει στο textbox με όνομα instance το final την τιμή που προκύπτει απο το άθροισμα των score1 και score 2

-------------------------

ΕΡΩΤΗΜΑΤΙΚΑ (;)

Ίσως να παρατηρήσετε σε ένα κώδικα την ύπαρξη πολλών ερωτηματικών. Τί σημαίνουν αυτά???
Τα ερωτηματικά χωρίζουν τις ενέργειες που πρέπει να γίνουν μέσα σε ενα κομμάτι κώδικα

Παραδείγματα :

Έστω οτι σε ενα frame έχουμε τον παρακάτω κώδικα

_root.pup.stop();
gotoAndstop(1);


Και σε ένα movie symbol

onClipEvent (mouseUp) {
gotoAndPlay(12);
this.gotoAndPlay(4);
}


Δέ θα ασχοληθώ εδώ με το τί κάνουν οι εντολές αλλά προσέξτε οτι και στις δύο εντολές στο τέλος έχω προσθέσει ένα ερωτηματικό για να τις ξεχωρίσω

-------------------------

KEYWORDS , λέξεις κλειδιά (if, else, do, on, case, for, in, this, var, function κτλ)

Οί συγκεκριμένες λέξεις ΔΕΝ μπορούν να χρησιμοποιηθούν ώς ονόματα σε variables labels κτλ γιατί είναι δεσμευμένες. Οί λέξεις αυτές χρησιμοποιούνται για να ξεκινήσουν η ενώσουν μια εντολή, ενέργεια.

Παραδείγματα :

on (release)...

if (percent==100)...

...else if (mama ==2)...

Κάθε παράδειγμα είναι ανεξάρτητο ( για αυτό και τα αποσιωπητικά ).


-------------------------

ΔΕΔΟΜΕΝΑ (instances, variables κτλ)

Αφού τους δώσουμε μια τιμή μπορούμε να τα καλέσουμε και χρησιμοποιήσουμε μέσα στον κώδικα

Παράδειγμα

Σε ένα frame γράφω :

final = math.floor(score*3);

Και σε ένα άλλο

If (final >= 100) {gotoAndPlay(3);}


η πιό απλά :

mine = 4;

και...

if (mine == 4); {play();}

-------------------------

ΆΓΚΙΣΤΡΑ {}

Μέσα στα άγκιστρα βάζουμε τις ενέργειες που θα εκτελεστούν

Παραδείγματα :

on (press) {stop();}

η μπορούμε να έχουμε και

onClipEvent (load) {
mad = "12";
mad2 = "11";
}

η και συνεχόμενα

on (press) {
if (isNaN(wage)) {
message.text = "enter a number";
} else if (wage>=0) {
message.text = "your wage is" + wage + "euros" ;
}
}

Μήν μπερδεύεστε με τις εντολές, κοιτάχτε μόνο που τοποθετούντε τα στοιχεία που αναλύουμε

Άν και θα μπώ στον κόπο να περιγράψω γενικά το κομμάτι κώδικα που έγραψα τελευταίο

Φτιάχτε ένα button, ένα dynamic textbox και ένα input textbox. Δώστε στο dynamic textbox στα instances το όνομα message και στο input textbox, στα variables ( var ) το όνομα wage. (κοιτάχτε στα properties των textboxes)

Κάντε copy&paste στο button τoν παρακάτω κώδικα

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

on &#40;press&#41; &#123;
       if &#40;isNaN&#40;wage&#41;&#41; &#123;
        message.text = "enter a number";
    &#125; else if &#40;wage>=0&#41; &#123;
         message.text = "your wage is " + wage + " euros" ;
    &#125;
&#125;
Πατήστε ctrl + enter για να τεστάρετε το flash. Δώστε ένα αριθμό στο input textbox και πατήστε το button. Προσπαθήστε τώρα να γράψετε αντί για αριθμό μια λέξη και ξαναπατήστε το button.

Το isNaN στον κώδικα απλά ψάχνει για να βρέι άν μέσα στο input textbox υπάρχει αριθμός η όχι. Άν είναι αριθμός δέν κάνει τίποτα (ακολουθεί η εντολή else + ενέργεια) διαφορά εκτελεί την ενέργεια που του έχουμε δώσει.

Για τα υπόλοιπα μπορείτε με λίγη φαντασία να καταλάβετε αμέσως τι κάνουν. :)

Δείτε το και στην πράξη :


-------------------------

ΤΕΛΕΙΕΣ (.)

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


Παραδείγματα :

Στην εξερεύνηση των windows για να πάμε σε ένα φάκελο θα λέγαμε πχ : reestuff\scripting
Στην actionscript για το ίδιο πράγμα θα γράψουμε : reestuff.scripting

επίσης για το movie clip με instance name: tsoutsou, μια μεταβολή στο rotation θα ήταν :

tsoutsou._rotation = 12;

-------------------------

ΠΩΣ ΝΑ ΓΡΑΦΕΤΑΙ ΤΟΝ ΚΩΔΙΚΑ σε buttons, movies, frames


Ανάλογα με το άν ο κώδικας που γράφεται θα μπεί σε ένα button, movie η frame αλλάζει και ο κώδικας στην αρχή και το τέλος του

ΠΑΡΑΔΕΙΓΜΑ : έστω οτι θέλουμε να μετακινηθούμε στο δεύτερο frame και να παίξουμε όλα τα frames απο εκεί και περα. Ο κώδικας είναι : gotoAndPlay(2);

Άν θέλουμε να βάλουμε τον κώδικα αυτό μέσα σε ένα frame τότε γράφουμε gotoAndPlay(2); -όπως μπορεί να δέι κανείς δέν χρειάζεται να προσθέσουμε τίποτα-

Άν θέλουμε να βάλουμε τον κώδικα αυτό μέσα σε ένα button τότε γράφουμε

on (release) {
gotoAndPlay(2);
}

Αυτό που κάνουμε δηλαδή είναι να γράφουμε on (release) { ΚΩΔΙΚΑΣ ;}

on(mouseEvent) {
statement(s);
}

Εκτός απο release έχουμε και τα παρακάτω mouse events

press : Το κουμπί πατίεται ενώ το mouse είναι απο πάνω του

releaseOutside : Όταν πατήσεται το button αλλά δέν αφήσεται το πλήκτρο του ποντικιού εκεινη τη στιγμή αλλά αφού απομακρύνεται το δείκτη απο το button στη συνέχεια το απελευθερώνεται. ( Σάν τα βιβλία των σχολών το έγραψα :( )

rollOut : Η ενέργεια εκδηλώνεται αφού ο δείκτης του mouse αμπομακρυνθεί απο ένα button πάνω απο το οποίο πέρασε χωρίς να το πατήσετε

rollOver : Η ενέργεια εκδηλώνεται αφού ο δείκτης του mouse περάσει πάνω απο ένα button

dragOut : Κάντε κλίκ πάνω στο button και στη συνέχεια έχοντας πατημένο το πλήκτρο μετακινείστε το δείκτη έξω απο το button (και αφήστε το)

dragOver : Λιγάκι κουλό... Κάντε κλίκ πάνω στο button και στη συνέχεια έχοντας πατημένο το πλήκτρο μετακινείστε το δείκτη έξω απο το button και χωρίς να το έχετε αφήσει επιστρέψτε το πάνω απο το button

keyPress ("key") : Αν πατήσετε το ορισμένο πλήκτρο στο πληκτρολόγιο εκδηλώνεται ενέργεια.

Κοιτάξτε τα παραδείγματα απο κάτω.




Σε περίπτωση που θέλουμε μια ενέργεια να εκδηλώνεται σε περισσότερες απο μία περιπτώσεις τότε απλά μετάτα το on και μέσα στην παρένθεση χωρίζουμε με κόμμα και κενό τις διαφορετικές μεθόδους. Όπως και στο ακόλουθο παράδειγμα.

on (release, rollOut) {
gotoAndPlay(2);
}


Άν θέλουμε να γράψουμε τον κώδικα σε ένα Movie clip τότε η σύνταξη γίνεται


onClipEvent (load) {
gotoAndPlay(2);
}

Εκτός απο to load, έχουμε και τα enterframe, unload, mouseUp, mouseDown, mouseMove, keyUp, keyDown, data

Βαριέμαι όμως να πώ τι κάνει το καθένα.....

To μόνο που θα πώ είναι οτι στα παιχνίδια βάζουμε βασικά το enterframe ανανεώνει τα δεδομένα ανά δευτερόλεπτο τόσες φορές όσα και τα frames per/second στα οποία έχει οριστεί να τρέχει το flash

Αυτά... Καλή μελέτη. Ασχολειθείτε και με εντολές..(ψάξτε στο help του flash να δείτε τι υπάρχει και δοκιμάστε να τις συντάξετε με βάση τα παραπάνω.

Επιπλέον αυτά που έλεγα πριν την εξεταστική τα παίρνω πίσω... (δύσκολο να το πιστέψει κανείς αλλά στις προηγούμενες εξεταστικές δέν άνοιγα για κανα 30 μερο το PC!!! Το freestuff με κατέστρεψε!!! ( :) αμέσως η δικαιολογία... )

Παρά τάυτα αυτό είναι το τελευταίο tutorial για κάποιο διάστημα γιατί βαριέμαι να γράψω άλλο!!!!!!!!

Κάποια στιγμή το συγκεκριμένο θα εμπλουτισθεί λίγο ακόμα. Με αυτό φτάνω τα 200 posts!!! Μετά απο 2+ χρόνια τα κατάφερα! :)[/code]
Τελευταία επεξεργασία από το μέλος spookyb52 την 14 Μαρ 2004 13:29, έχει επεξεργασθεί 2 φορές συνολικά.
Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner

Άβαταρ μέλους
Homer
Δημοσιεύσεις: 86
Εγγραφή: 12 Φεβ 2004 16:37
Τοποθεσία: stockholm
Επικοινωνία:

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από Homer » 12 Φεβ 2004 17:52

efxaristo re..helped me alot!!!....kai pali efxaristo :D

LightForce
WebDev Moderator
Δημοσιεύσεις: 3812
Εγγραφή: 13 Απρ 2003 23:49

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από LightForce » 13 Φεβ 2004 03:47

Μπραβο spooky:-)

Χρησιμοποιησε αν θες τα tag..

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

&#91;code&#93;

&#91;/code&#93;
να φαινεται καλυτερα ο κωδικας :D

spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από spookyb52 » 13 Φεβ 2004 15:15

Χαίρομαι που βοήθησα κάποιον! :D

Μάλλον θα πρέπει να αρχίσω να βάζω τον κώδικα μέσα σε πλαίσιο :)

Πιό πάνω το έκανα μόνο σε μία περίπτωση γιατί τα υπόλοιπα δέν είναι ολοκληρωμένος κώδικας αλλά παραδείγματα (κάποιες φορές τμηματικά και δε θα είχε νόημα νομίζω... Μπορεί να μπερδευόταν και κανείς... :-? )
Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner

Άβαταρ μέλους
Expl0it
Honorary Member
Δημοσιεύσεις: 2364
Εγγραφή: 25 Αύγ 2003 23:24
Τοποθεσία: home/sweet/home

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από Expl0it » 13 Φεβ 2004 15:18

Πάντως πολύ καλό το Tutorial σου και ελπίζω να βοηθήσει αρκετό κόσμο !!
LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0

Εικόνα

spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από spookyb52 » 13 Φεβ 2004 15:27

Και εγώ το ίδιο, μήν τα γράφω άδικα :D
Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner

Άβαταρ μέλους
MariaN
Δημοσιεύσεις: 169
Εγγραφή: 06 Ιαν 2004 16:16
Τοποθεσία: athina

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από MariaN » 16 Φεβ 2004 03:01

apsogo tutorial...kai sigoura boithaei....an to eixes grapsei tote pou xtypiomoun na katalabw ti einai ta variables kai ta operators ....apla den tha xreiazotan na xtypithw....eyge :D :D

dimosthenis
Δημοσιεύσεις: 24
Εγγραφή: 29 Αύγ 2002 20:55

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από dimosthenis » 14 Μαρ 2004 11:49

kai mena me voithises para poli idika na xana prospsathiso na matho euxaristo kai elpizo na sinexisis !!

(pos kanoume texbox? dynamic kai input?)

spookyb52
Δημοσιεύσεις: 1891
Εγγραφή: 23 Ιαν 2002 01:00
Τοποθεσία: Lost in the mansion
Επικοινωνία:

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από spookyb52 » 14 Μαρ 2004 13:27

:oops: Για αρχή : thankz... και για την ερώτησή σου

Δημιουργείς ένα απλό textbox και στη συνέχεια από τα properties έχει ένα drop down menu που λέει static text δές φώτο από κάτω

Εικόνα

και απλά επιλέγεις αλλαγή σε input η dynamic

Η διαφορά μεταξύ input και dynamic είναι ότι στο input μπορεί να υπάρξει αλληλεπίδραση με τον χρήστη (εισαγωγή password πχ) ενώ στο dynamic ο χρήστης δέν μπορεί να εισάγει η να αλλάξει τα δεδομένα που υπάρχουν στο textbox


ΚΑΙ ΜΙΑ ΔΙΟΡΘΩΣΗ με την ευκαιρία...

το enterFrame ανανεώνει τα δεδομένα ανά δευτερόλεπτο τόσες φορές όσα και τα frames per/second στα οποία έχει οριστεί να τρέχει το flash


[ήθελα να το διορθώσω από καιρό αλλά σήμερα μου δώθηκε η ευκαιρία... :P ]
Life is like a fast car on an icy road. Brakes don't work, yes I know it, but I step on the gas
Garage punk | Rockabilly | Rock 'n' Roll | Stoner

Άβαταρ μέλους
xmavidis
Honorary Member
Δημοσιεύσεις: 1217
Εγγραφή: 02 Δεκ 2003 19:59
Τοποθεσία: Ηράκλειο

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από xmavidis » 14 Μαρ 2004 14:54

Πολύ καλό!
Πήρα μια ιδέα κι εγώ ο άσχετος από flash!! :hammer: :hammer:

Και να είσαι σίγουρος πως δεν τα γράφεις τσάμπα
I want to know God’s thoughts; the rest are details.
Albert Einstein

STAYRAETOS
Δημοσιεύσεις: 77
Εγγραφή: 20 Δεκ 2007 13:08

[AS2] Actionscript, Γνωριμία (terminology)

Δημοσίευση από STAYRAETOS » 27 Αύγ 2008 00:26

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

Απάντηση

Επιστροφή στο “ActionScript και Flex Προγραμματισμός”

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

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