Flash CS3 - Flash CS4

Free tutorials and scripts for all.
Actionscript 3.0

Sounds da libreria con Flash CS3

This is a discussion on Sounds da libreria con Flash CS3 within the Articoli e tutorials forums, part of the Flash CS3 e Actionscript 3.0 category; Vi ricordate attachSound di Actionscript 2.0 ? Si potevano attaccare dei sounds dalla libreria, proprio come fossero MovieClip e invece ...


Go Back   Forum Flash CS3 Flash CS4 > Flash CS3 e Actionscript 3.0 > Articoli e tutorials

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 21-09-07, 08:19
Administrator
 
Join Date: Jul 2007
Location: Cesena
Posts: 4,486
Rep Power: 6
Flep is on a distinguished road
Sounds da libreria con Flash CS3

Vi ricordate attachSound di Actionscript 2.0 ?
Si potevano attaccare dei sounds dalla libreria, proprio come fossero MovieClip e invece erano degli mp3 che avevamo in libreria.
Con Actionscript 3.0 il metodo attachSound è stato rimosso ( tanto per cambiare dirà qualcuno di voi... ), però niente paura, è rimasto semplice utilizzare in runtime un file mp3 che abbiamonella libreria del nostro FLA.
Dopo aver visto come creare e assegnare una classe ai suoni che abbiamo in libreria, adesso vedremo come fare la stessa cosa ma senza creare una classe per ogni suono, altrimenti se ipotizzando di avere un centinaio di suoni sarebbe davvero scomodo dover creare 100 file AS.

Creo un FLA che salvo con nome ' main.fla ' .
Importo 10 files mp3 diversi, in questo caso io uso dei sounds vocali e comunque per fare questa prova vi consiglio di utilizzare suoni brevi, da bottoni insomma.
Per ogniuno di loro assegno una classe in questo modo:
- click destro sul file, selezionare linkage ( concatenamento per chi ha Flash in italiano)
- nella finestra che si apre, attivo l'opzione ' esporta per Actionscript ', nel campo Class inserisco ' Sound0 '.
- clicco ok e a questopunto Flash midirà che non è stata trovata una classe con quel nome e dice che proseguendo ne creerà una lui. Clicchiamo ok.

Facciamo lo stesso procedimento per gli altri 9 suoni. Quindi assegnamo le classi Sound1, Sound2, Sound3, ecc ecc...

Istanzio 10 bottoni sullo stage assegnando loro un nome istanza ( ad esempio button_0_btn, button_1_btn, button_2_btn, ecc ecc... ).

Ora creo la Document Class, un file AS che salvo con nome ' Main.as ', implementata in questo modo:
Code:
package
{
	import flash.display.MovieClip;
	import flash.utils.getDefinitionByName;
	import flash.media.Sound;
	import flash.events.MouseEvent;
	
	public class Main extends MovieClip
	{
		public function Main()
		{
			initLabels();
		}
		
		private function initLabels():void
		{
			for( var i:int=0;i < 10;i++)
			{
				var b:*=this.getChildAt(i);
				var button:Button=b;
				button.label='Sound'+i;
				button.addEventListener(MouseEvent.CLICK,playSound);
			}
		}
		
		private function playSound(m:MouseEvent):void
		{
			var className:Class=getDefinitionByName(m.currentTarget.label)as Class;
			var sound:Sound=new className();
			sound.play();
		}
	}
}
Risultato:










Analizziamo il codice

Metodi


initLabels();
Utilizzando un ciclo recupero tutti i bottoni che ho sullo stage, gli assegno un nome alla label ( l' etichetta del bottone che si leggerà ) e gli assegno un listener in ascolto dell' evento CLICK che chiamerà la funzione ( metodo ) playSound
for( var i:int=0;i < 10;i++)
{
var b:*=this.getChildAt(i);
var button:Button=b;
button.label='Sound'+i;
button.addEventListener(MouseEvent.CLICK,playSound );
}

playSound();
utilizzando la classe getDefinitionByName imposto il nome della label ( m.currentTarget è chi ha scaturito l' evento, quindi il bottone che è stato cliccato ) del bottone come nome della Classe che devo chiamare
var className:Class=getDefinitionByName(m.currentTarge t.label)as Class;
creo una istanza di quella classe ( che estende la classe Sound di sicuro in quanto la abbiamo aggiunta al linkage )
var sound:className=new className();
riproduco il suono
sound.play();

Stay tuned !
__________________

 


I recommend: Essential Actionscript 3.0

- Non rispondo ai messaggi privati con domande tecniche. Apri una discussione sul forum !
- I do not reply technicians pvt messages. Open a thread !
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote

Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump

Similar Threads

Thread Thread Starter Forum Replies Last Post
Actionscript 3 Rimozione elemento di libreria jseeker Actionscript 3.0 base 5 29-08-08 16:54
after removeChild(); FLV sounds in the external file keeps playing... Vudrok Flash CS3 generale 4 11-04-08 02:51
How to use buttons and sounds with flash CS3 Flep Tutorials 1 02-02-08 01:32
Caricare un' immagine da libreria con Flash CS3 Flep Articoli e tutorials 3 19-12-07 15:37
Library Sounds with Flash CS3 Flep Tutorials 0 25-09-07 16:36


All times are GMT. The time now is 10:44.


Powered by vBulletin versione 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0 RC4
Forum SiteMap


FlepStudio
by Filippo Lughi
P.IVA 03605860406