Operazioni con l'audio incorporato

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

L'uso dell'audio incorporato invece del caricamento dell'audio da un file esterno è particolarmente utile per i file audio di piccole dimensioni utilizzati come indicatori acustici nell'interfaccia utente di un'applicazione (ad esempio, il suono riprodotto quando si fa clic su un pulsante).

Quando si incorpora un file audio nell'applicazione, le dimensioni del file SWF risultante aumentano della dimensione del file audio. In altre parole, se si incorporano file di grandi dimensioni, il file SWF può raggiungere dimensioni indesiderate.

Il metodo per incorporare un file audio nel file SWF dell'applicazione varia a seconda dell'ambiente di sviluppo.

Uso di un file audio incorporato in Flash

Lo strumento di creazione di Flash consente di importare file audio in diversi formati e di memorizzarli come simboli nella libreria. In seguito, è possibile assegnarli ai fotogrammi della linea temporale oppure ai fotogrammi dello stato di un pulsante, utilizzarli con i comportamenti oppure direttamente nel codice ActionScript. Questa sezione descrive come utilizzare l'audio incorporato nel codice ActionScript mediante lo strumento di creazione di Flash. Per informazioni su altri modi di utilizzare l'audio incorporato in Flash, vedete “Importazione dell'audio” nella guida Uso di Flash .

Per incorporare un file audio utilizzando lo strumento di creazione di Flash:

  1. Selezionate File > Importa > Importa nella libreria, quindi selezionate un file audio e importatelo.

  2. Fate clic con il pulsante destro del mouse sul nome del file importato nel pannello Libreria e selezionate Proprietà. Selezionate la casella di controllo Esporta per ActionScript.

  3. Nel campo Classe, inserite un nome da utilizzare per l'audio incorporato in ActionScript. Per impostazione predefinita, in questo campo viene utilizzato il nome del file audio. Se il nome file include un punto, come in “DrumSound.mp3”, è necessario modificarlo in un nome simile a “DrumSound”; ActionScript non accetta il carattere punto in un nome classe. Il campo Classe base deve rimanere impostato su flash.media.Sound.

  4. Fate clic su OK. Potrebbe essere visualizzata una finestra di dialogo che segnala che è impossibile trovare una definizione per la classe nel percorso di classe. Fate clic su OK e continuate. Se è stato specificato un nome che non corrisponde a nessun nome classe del percorso di classe dell'applicazione, una nuova classe che eredita da flash.media.Sound viene generata automaticamente.

  5. Per utilizzare l'audio incorporato, occorre fare riferimento al nome classe dell'audio in ActionScript. Ad esempio, il codice seguente inizia con la creazione di una nuova istanza della classe DrumSound generata automaticamente:

    var drum:DrumSound = new DrumSound(); 
    var channel:SoundChannel = drum.play();

    DrumSound è una sottoclasse della classe flash.media.Sound, pertanto eredita i metodi e le proprietà della classe Sound, incluso il metodo play() come mostrato sopra.

Uso di un file audio incorporato in Flex

Esistono diversi modi per incorporare le risorse audio in un'applicazione Flex, ad esempio è possibile:

  • Usare il tag per metadati [Embed] in uno script

  • Usare la direttiva @Embed in MXML per assegnare una risorsa incorporata come proprietà di un componente quale Button o SoundEffect.

  • Usare la direttiva @Embed in un file CSS

In questa sezione è descritta la prima opzione: come incorporare l'audio nel codice ActionScript di un'applicazione Flex, usando il tag per metadati [Embed] .

Per incorporare una risorsa nel codice ActionScript, utilizzate il tag per metadati [Embed] .

Inserite il file audio nella cartella di origine principale o in un'altra cartella del percorso di compilazione del progetto. Quando rileva il tag per metadati Embed, il compilatore di Adobe crea automaticamente la classe della risorsa incorporata. Potete accedere alla classe usando una variabile di tipo dati Class dichiarata subito dopo il tag per metadati [Embed] .

Il codice seguente consente di incorporare il suono smallSound.mp3 e usa la variabile soundClass per memorizzare un riferimento alla classe della risorsa incorporata associata a tale suono. Nel codice viene poi creata un'istanza della classe della risorsa incorporata, che viene inserita come istanza della classe Sound e quindi viene chiamato il metodo play() per quella istanza:

package 
{ 
    import flash.display.Sprite; 
    import flash.media.Sound; 
    import flash.media.SoundChannel; 
 
    public class EmbeddedSoundExample extends Sprite 
    { 
        [Embed(source="smallSound.mp3")] 
        public var soundClass:Class; 
         
        public function EmbeddedSoundExample() 
        { 
            var smallSound:Sound = new soundClass() as Sound; 
            smallSound.play(); 
        } 
    } 
}

Per usare il suono incorporato per impostare una proprietà di un componente Flex, il suono deve essere inserito come un'istanza della classe mx.core.SoundAsset invece che come un'istanza della classe Sound. Per un esempio di questo genere che usi la classe SoundAsset, vedete “Classi di risorse incorporate” in Apprendimento di ActionScript 3.0.