[AS2] Μουσική, attach sound κτλ.

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

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

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

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από spookyb52 » 22 Φεβ 2004 19:34

Τα 4 flash είναι 510kb και δέν έχουν preloader. Κάντε λίγη υπομονή μέχρινα ανοίξουν :roll:

Κοιτάχτε και αυτά τα links

http://www.freestuff.gr/forums/viewtopi ... 7835#47835

(έχω την αίσθηση οτι υπάρχουν και άλλα. Το μάτι μου δέν έπεσε σε άλλο πάντως)

Χμμ... μήπως να περιγράψω μόνο πώς να βάζετε έναν ήχο να παίζει?

Λοιπόν κάντε Import ένα ήχο και απο το library Ctrl + L σύρτε τον μέσα στο flash. Βάλτε όσα frames χρειάζεστε για να παίξει όλο το track. THE END!!!

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

-----------------------------------------------------------------------------------------------------------
ATTACH SOUND


Αυτό που θα περιγράψω είναι η μέθοδος attachSound

1) Κάντε import ένα ήχο (να έχει κάποια διάρκεια). Ο ήχος εισάγεται απευθείας στην library ( Ctrl + L )
2) Ανοίξτε τη library ( Ctrl + L ) και αφού βρείτε τον ήχο σας κάντε δεξί κλίκ πάνω του
3) Επιλέξτε linkage και τσεκάρετε την επιλογή Export for Actionscript
4) Στο identifier δώστε ένα όνομα αντί για αυτό που έχει. Ας πούμε οτι το ονομάζουμαι metal
5) Πηγαίνετε πάλι στη Library, βρείτε τον ήχο σας και με δεξί κλίκ επιλέξτε properties. Άν θέλετε μπορείτε να ρυθμίσετε το είδος και την ποιότητα της συμπίεσης η να αφήσετε αυτή με την οποία έγινε import ο ήχος.
6) Φτιάχτε ένα button.
7) Στο button δώστε τον παρακάτω κώδικα

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

on (release) {
	stopAllSounds();
	heavy = new Sound();
	heavy.attachSound("metal");
	heavy.start(0, 1);
}
Τα On (release) {.......} και τα ερωτηματικά ;;;; έχω πεί και εδώ http://freestuff.gr/forums/viewtopic.ph ... 2de461d761 που χρησιμευουν.

Αυτό που φτιάξατε είναι κάτι σάν το παρακάτω (χωρίς το stop button)




Άς δούμε τι κάνει ο κώδικας γραμμή-γραμμή

stopAllSounds();
heavy = new Sound();
heavy.attachSound("metal");
heavy.start(0, 1);

stopAllSounds();
Κάνει αυτό που λέει. Σταματάει οποιοδήποτε ήχο ακούγεται εκείνη τη στιγμή.

heavy = new Sound();
Δημιουργούμε ένα αντικείμενο ήχου με την ονομασία heavy. Αντί για heavy μπορείτε να το ονομάσετε και διαφορετικά. Πχ spookyb52!!!

heavy.attachSound("metal");
Καλούμε και εισάγουμε στο flash τον ήχο που του είχαμε δώσει στο library την ονομασία metal

heavy.start(0, 1);
Με το πάτημα του κουμπιού ο ήχος ξεκινά να παίζει απο την αρχή και θα γίνει loop συνολικά 1 φορα. Άν στην παρένθεση αντί για (0, 1) είχαμε (12, 20) αυτό θα σήμαινε οτι ο ήχος θα έπαιζε απο το 12 δευτερόλεπτο και θα γινόταν loop συνολικά 20 φορές πρίν σταματήσει.

Νομίζω οτι τα παραπάνω είναι αρκετά απλά. Δοκιμάστε τα αρκετές φορές και με διαφορετικές ονομασίες μέχρι να συνηθήσετε.

Τον παραπάνω ήχο μπορούμε να τον σταματήσουμε και με την εντολή heavy.stop();
-----------------------------------------------------------------------------------------------

ΈΛΕΓΧΟΣ - Αλληλεπίδραση

Το πώς μπορούμε να ξεκινήσουμε και να σταματήσουμε ένα ήχο το είδαμε πιο πάνω

QUESTION : Πώς μειώνω, αυξάνω την ένταση ενός ήχου?

Με την εντολή setVolume. Στο παραπάνω παράδειγμα δημιουργήστε ένα νέο button και δώστε του τον κώδικα

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

on (release) { heavy.setVolume(10);}

Αυτό θα μειώσει την ένταση του ήχουν στο 10% (heavy είναι η ονομασία του αντικειμένου που δημιουργήσαμε στην αρχή)

QUESTION : Πως μπορώ να επιλέξω το ηχείο απο το οποίο θα ακούγεται ο ήχος?

Με την εντολή setPan Πχ σε ένα button:

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

on (release) { heavy.setPan(-100);}


Οι τιμές που μπορούμε να δώσουμε στην παρένθεση είναι απο -100 (για το αριστερό ηχείο) έως 100 (για το δεξί ηχείο).


QUESTION : Πώς μπορώ να δώσω ελευθερία σε κάποιον να ξεκινήσει τον ήχο πχ απο εκεί που θέλει?

Δημιουργόντας Variables η και δίνοντας τη δυνατότητα σε κάποιον με κάποιο τρόπο, με μπάρα, μενού, textbox να επιλέξει το σημείο.

Πχ δημιουργούμε ένα input textbox και δίνουμε για variable όνομα το butu

Στη συνέχεια δημιουργούμε ένα κουμπί και βάζουμε τον κώδικα ( με βάση το πρώτο παράδειγμα πάντα )

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

on (release) {
	stopAllSounds();
	heavy = new Sound();
	heavy.attachSound("metal");
	heavy.start(butu, 1);
}

Το κομμάτι θα αρχίζει να παίζει απο τον αριθμό που υπάρχει στο textbox. Ανάλογα μπορείτε να πράξετε και για τις υπόλοιπες ιδιότητες, setpan, loop κτλ. Παρακάτω μπορείτε να δείτε ένα απλό παράδειγμα. Βάλτε τις ρυθμίσεις που θέλετε και πατήστε το play track



Το παράδειγμα αυτό είναι αρκετά απλό. Σε ένα κανονικό flash θα έπρεπε να βάλουμε περισσότερο κώδικα ώστε το flash να αντιδρά ανάλογα με το άν του δίνουμε κάτι άλλο αντί για αριθμό η αν ο αριθμός ξεπερνάει τα όρια κτλ. Είχα φτιάξει δύο τέτοια flashakia αλλά πρέπει να τα έφαγε το πρόσφατο format γιατί δέν τα βρίσκω.

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

Δείτε και το παρακάτω παράδειγμα. Πατήστε το Play και μεταφέρετε αργά σε διάφορα σημεία τη μπάλα. Κλείστε και τη μουσική, σε περίπτωση που ακούτε!!! Δείτε τις μεταβολές του ήχου (και θαυμάστε τα σχέδια μου :lol: )

Άν πατήσετε το show θα δέιτε κάποιες επιπρόσθετες πληροφορίες.




Okay,,,, αυτά για την ώρα. Κάποια άλλη στιγμή θα το συμπληρώσω και με επιπλέον στοιχεία. Πώς να φτιάξετε μια scroll μπάρα που θα λειτουργέι ως volume control και κάποια συμπληρωματικά ακόμα...
Τελευταία επεξεργασία από το μέλος spookyb52 την 23 Φεβ 2004 12:58, έχει επεξεργασθεί 1 φορά συνολικά.
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

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

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από spookyb52 » 23 Φεβ 2004 12:56

UPDATE

Καθώς δέν έχει κάνει κάποιος άλλος post μπορώ να συνεχίσω..

Πώς να φορτώσουμε ένα mp3 απο εξωτερική πηγή :
Αρχικά δημιουργούμε ένα νέο αντικείμενο ήχου και στη συνέχεια δίνουμε την εντολή loadSound
Παράδειγμα

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

heavy = newSound();
heavy.loadSound("τοtrackμου.mp3", true);
Το true στην παρένθεση σημαίνει οτι ο ήχος θα αρχίσει να παίζει μόλις φορτωθεί ένα μέρος του. Άν είχαμε θέσει την τιμή σε false τότε θα χρειαζόταν η μέθοδος start() για να παίξει. (όπως έδειξα στην αρχή αυτού του tutorial)


Πώς να ελέγχουμε τη διάρκεια ενός ήχου

Το να μπορούμε να ελέγχουμε τη διάρκεια ενός ήχου είναι ιδιάιτερα σημαντικό. Γιατί έτσι μπορούμε δυναμικά να παρέμβουμε στο "έργο"μας.

Μπορούμε να φτιάξουμε μια progress bar η να κάνουμε κάποια γεγονότα να αρχίσουν ανάλογα με το σημείο που βρίσκεται το track. Να εμφανίζονται οι στίχοι, να αλλάζουμε εικόνα, frame, clip κτλ.

Με την εντολή

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

diarkeia = heavy.duration();
Δημιουργούμε ένα variable με την ονομασία diarkeia το οποίο ελέγχει την συνολική διάρκεια του αντικειμένου (ήχου) heavy που έχουμε δημιουργήσει.

Με την εντολή

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

current = heavy.position();
Δημιουργούμε ένα variable με την ονομασία current το οποίο ελέγχει το σημείο (δευτερόλεπτο) στο οποίο βρίσκεται η αναπαραγωγή του αντικειμένου (ήχου) heavy που έχουμε δημιουργήσει.


Για τέλος άφησα τον χειριστή onSoundComplete

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

heavy.onSoundComplete = function() {
	_root.clipit.play();
};
Με το παραπάνω ελέγχουμε άν έχει τελείωσει το track (το heavy νομίζω οτι έχετε καταλάβει τι ρόλο παίζει νομίζω πια :) ) και όταν συμβεί αυτό ακολουθούν οι ενέργειες στην αγκύλη.

Στο παράδειγμά μας με το που τελειώνει η αναπαραγωγή αρχίζει να παίζει το movie clip με instance name το clipit.

Στο παρακάτω παράδειγμα μπορείτε να δείτε τα παραπάνω στοιχεία σε δράση. Έχει κανα δυό πραγματάκια που θέλουν βελτίωση αλλά δέν θα κάτσω να τα διορθώσω γιατι λειτουργεί σωστα. Το Nan που βγαζει στο textbox του percent σημαίνει Not a number... :)



Θα ακολουθήσει κάποια άλλη στιγμή ένα update ακόμα.
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

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27617
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από cordis » 23 Φεβ 2004 13:02

πολύ ωραίο βοήθημα... ;)
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

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

[AS2] Μουσική, attach sound κτλ.

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

Μπράβο spooky. Άψογο βοήθημα!!!!
Με βοήθησε πολυ. Thank you!!!!


ps : Μήπως ήρθε η ώρα να δημιουργήσω ένα λογαριασμό με το οποίο θα μπαίνω για να μου δίνω συγχαρητήρια και να με θαυμάζω??? :roll:

Έγραψες. ΤΕΛΕΙΟ! :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] Μουσική, attach sound κτλ.

Δημοσίευση από Expl0it » 23 Φεβ 2004 17:54

Πολύ ωραίος spookyb52 !!! :P
LET THE C0DER IN YOUR LIFE
Fatal Error: Unable to read 3555 bytes in /root/head/brain/task.php on line 0

Εικόνα

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

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από LightForce » 23 Φεβ 2004 20:26

einai poli kalo spooky, pistevo tha voithisei poloys :P
paraponiari

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

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από spookyb52 » 19 Μαρ 2004 18:07

UPDATE

Επειδή κάτι ξέχασα, σημαντικό...

Άν θέλουμε να σταματήσουμε ένα συγκεκριμένο ήχο πρέπει να βάλουμε το id του στην εντολή stop

Πχ άν έχουμε ένα ήχο που στα linkage τον ονομάσαμε soundfreak και το νέο αντικείμενο ήχου που δημιουργήσαμε ονομάζεται mysound

θα μπορούσαμε να γράψουμε :

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

mysound.stop("soundfreak");
Αυτό θα είχε σάν αποτέλεσμα να σταματήσει ο συγκεκριμένος μόνο ήχος και όχι όλοι οι ήχοι στο flash... σιγά την παράλειψη :oops:
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] Μουσική, attach sound κτλ.

Δημοσίευση από xmavidis » 19 Μαρ 2004 22:30

Έγραψες! :wink:
I want to know God’s thoughts; the rest are details.
Albert Einstein

JohnD
Δημοσιεύσεις: 8
Εγγραφή: 24 Απρ 2005 11:09
Τοποθεσία: Thessaloniki
Επικοινωνία:

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από JohnD » 16 Μάιος 2005 12:33

OK ... :kaloe: first post :)

spookyb52 ιδιαιτέρως χρήσιμο αποδείχθηκε το συγκεκριμένο post, διότι ως newbie στο flash με βοήθησε πολύ το heavy = newSound(); (γενικώς ως δημιουργία αντικειμένου). :lol:

Από κει και πέρα, ναι μεν έφτιαξα ένα movie που έχει 2 streaming sounds, όμως πως εμφανίζεις το progress - οχι preloader - (π.χ. σαν bar loader που δείχνει όσο έχει φορτωθεί και πόσο απομένει), το συνολικό χρόνο κλπ. ?

Also, απόδοση τωνdiarkeia και current - πως εμφανίζονται βασικά. Υπάρχει σε *.fla αρχειάκι το "Alice in chains" (που μάλλον περιέχει όλα τα παραπάνω) ?

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

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από spookyb52 » 16 Μάιος 2005 23:53

Welcome JohnD στο freestuff :)
Λοιπόν για την progress bar ένας τρόπος είναι να φτιαξεις ένα movie symbol με 100 frames το οποίο θα έχει animation

Στη συνέχεια τα υπόλοιπα είναι απλά. Με απλή μέθοδο των τριών παίρνεις το ποσοστό.

sound.duration() _________ 100
sound.position() _________ X?

X=(sound.position()*100)/sound.duration()

και τελικά απλά λές στο movieclip να σταματήσει στο frame με νούμερο όσο και το χ που είναι το ποσοστό

δηλ myclipName.gotoAndStop(Math.round(X))
η Math.round() στρογγυλοποιεί την τιμή που υπάρχει μέσα στην παρένθεση
//----------------
Τα fla αρχεία σπάνια τα κρατάω. Δυστυχώς δέν το έχω για να στο δώσω

Ps : Για κανά δεκαήμερο [+-10μέρες :lol: ] θα είμαι offline. Σε περίπτωση που θές να με ρωτήσεις κάτι ίσως αργήσω να απάντήσω :wink:
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

Άβαταρ μέλους
magician
Δημοσιεύσεις: 4
Εγγραφή: 26 Απρ 2005 00:10
Τοποθεσία: στα όνειρα
Επικοινωνία:

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από magician » 17 Μάιος 2005 18:43

όλα πολύ καλά παιδιά αλλά έχω ένα πρόβλημα.θέλω να βάλω μουσική στο site μου(www.r-m-d.org)χιχι διαφήμιση.αργεί όμως όταν μπεί κάποιος στη ΄σελίδα να του κατέβει το κομμάτι να το ακούσει.ππώς μπορώ να συμπιέσω το αρχείο mp3 για να είναι πιο γρήγορο?γίνετε?ευχαριστώ προκαταβολικά κάθε βοήθεια δεκτή.ο ΘΕΟΣ του κόσμου να σας έχει καλά...

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

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από spookyb52 » 17 Μάιος 2005 19:36

Φαντάζομαι ότι εννοείς με flash διαφορετικά σε λάθος κατηγορία μπήκες :)

Πηγαίνεις file/publish settings και στη συνέχεια στην καρτέλα flash κάτω κάτω τεκάρεις το override sound settings και επιλέγεις ποιότητα για τα audio stream, audio event.

Αυτό βέβαια έφαρμόζεται σε όλα τα αρχεία ήχου που έχεις μέσα στο flash

Άν θές να αλλάξεις τη συμπίεση για συγκεκριμένα αρχεία ήχου ανοίγεις τη library [ctrl+L] και αφού επιλέξεις ένα ήχο κάνεις δεξί κλίκ/properties και στο νέο παράθυρο αφαιρείς το τσεκάρισμα από το use imported Mp3 quality και κάνεις τις δικές σου επιλογές.
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

Άβαταρ μέλους
EkLekTos
WebDev Moderator
Δημοσιεύσεις: 7421
Εγγραφή: 07 Απρ 2005 15:44
Τοποθεσία: Inside the Effects
Επικοινωνία:

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από EkLekTos » 17 Μάιος 2005 19:40

Μεγαλύτερη συμπίεση από mp3???????? :lol: :lol:
Να φανταστείς ένα audio είναι περίπου 30Μb και όταν το συμπιέσεις γίνεται γύρο στα 3-4Mb, εσύ θες να το κάνεις kb ή byte!!!Χαχαχαχα :hammer: :hammer:
* Apple Technical Support Specialist *
* Apple Sales & Product Professional Certificate since 2011 * Εικόνα
Follow me @Twitter

Άβαταρ μέλους
magician
Δημοσιεύσεις: 4
Εγγραφή: 26 Απρ 2005 00:10
Τοποθεσία: στα όνειρα
Επικοινωνία:

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από magician » 18 Μάιος 2005 01:19

ευχαριστώ πολύ για την απάντηση spookyb52 να σαι καλά.άλλες 2 ερωτήσεις.θα ήθελα να μου πεί κάποιος το τρόπο για να δημιουργήσω κάτι σαν player με play k stop.(υπάρχει τρόπος να μπεί κάτι σαν το media player η κατι παρόμοιο?έστω σκέτα button.2)π ού μππορώ να ρωτήσω για ναβρώ ένα πρόγραμμα η script η οτιδήποτε ώστε να μπορώ στο site μου να δείχνει πόσοι είναι μέσα on line κ πόσοι στο chat για παράδειγμα?συγνώμη για την κούραση.ο ΘΕΟΣ του κόσμου να σας έχει καλά

Άβαταρ μέλους
MichalisS
Honorary Member
Δημοσιεύσεις: 2372
Εγγραφή: 03 Ιαν 2005 23:50

[AS2] Μουσική, attach sound κτλ.

Δημοσίευση από MichalisS » 29 Ιουν 2005 01:48

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

Απάντηση

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

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

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