Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Play / pause external sound

    Ciao a tutti, programmo php, phyton, perl e altri ma sono assolutamente digiuno di flash, actionscripts e similari.

    La domanda è la seguente:
    è possibile avere un controllo di tipo "sound on / sound off" che faccia il play / pause di un souno non embeddato nel movie ma residente esternamente sul fileserver?

    Grazie.
    ... Quando il dito indica la luna l'imbecille guarda il dito...

  2. #2
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Sì, ma siccome sei digiuno, sarebbe troppo lungo da spiegare il tutto passo per passo, specialmente per la gestione della pausa.
    Mi auguro che tu sappia almeno come si crea un simbolo e come, dallo stesso, si estraggono le sue istanze (vedi Libreria).
    Sarebbe ancor più facile se tu sapessi anche come si fa ad assegnare un nome alle istanze.
    Per il resto ti consiglio di consultare la guida di Flash, cercando l'oggetto Sound (come si costruisce) e la sua gestione con loadSound.
    Fa esattamente quello che chiedi:
    ti carica un file.mp3, senza troppa attesa (riempie un buffer e tu ascolti il file audio con un caricamento progressivo); basta settargli la booleana in true.

    Una volta costruito l'oggetto Sound (sto per spiegarti come si fa, ma molte cose dipendono dalla versione che hai di Flash), puoi richiamarlo tramite gli eventi di pulsante.

    Ecco l'esempio (spiccio), nella speranza di rendermi comprensibile:

    - Metti un file mp3 nella stessa cartella in cui c'è il file .swf generato col tuo file .fla; supponiamo che il file.mp3 abbia il nome canzone.mp3
    - Apri il tuo .fla, seleziona (con un clic) il fotogramma in cui vuoi che avvenga il caricamento e, lì stesso, crea due istanze di pulsante (fai due disegni, selezionali uno alla volta e premi F8.
    - Nel pannello che si apre, una volta per il primo disegno e l'altra per il secondo, seleziona il comportamento Pulsante (o Button) e dai l'OK.
    In realtà hai creato un SimboloPadre che va a depositarsi nella libreria e, al tempo stesso, ne hai già estratto un'istanzaFiglia dello stesso.
    Prima che tu vada ad associare qualunque azione, puoi estrarre altre istanze di quello stesso simbolo per mezzo del classico Copia/Icolla logico, attuandolo sullo stage.
    Un altro modo per estrarre istanze di simbolo è:
    aprire la libreria e trascinare il simbolo sullo stage (l'area utile di lavoro che corrisponde al frame che hai selezionato), tante volte, quante sono le istanze che ti servono.

    Seleziona il pulsante del Play, apri il pannello Azioni (tasto F9), metti in modalità Esperto (dipende dalla versione che hai di Flash) affinché tu possa "scriptare" in piena libertà, come se fosse il Notepad di Windows.
    Scrivi (quelli in rosa, ovv.te, sono solo commenti) oppure incolla:
    codice:
    on (press) { //quando premo su questo  pulsante... 
    brano = new Sound(); //... crea un'istanza per l'oggetto (non è altro che una variabile).
    brano.loadSound("canzone.mp3", true); //carica, al suo interno, il flusso dell'mp3 di nome canzone.mp3, settandolo in "vero".
    } // fine istruzione
    Poi, seleziona il pulsante di Stop e, come prima, nel pannello Azioni, associagli:
    codice:
    on (press){
    brano = false; // la var si "invalida" e così il flusso si interrompe 
    }
    C'è da dire che, ad ascolto ultimato, una copia del file.mp3 si deposita nella cache del browser e pertanto il caricamento successivo avviene all'istante.

    Questo esempio ti mostra un solo metodo, ma puoi fare la stessa cosa, associando lo script direttamente al fotogramma, però, in tal caso, la sintassi è del tutto diversa, e bisogna dare un nome univoco ad ognuna delle istanze di pulsante che vorrai usare.

    In linea generale:
    Se le istanze di simbolo (per es Movieclip) sono annidate, l'una nell'altra, allora sarà necessario immettere anche il percorso relativo (ma questa è un'altra storia).

    Fai prima questa prova e dimmi se sono generoso...



    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  3. #3
    Caspita!
    Grazie mille, faccio un paio di esperimenti e ti faccio sapere.
    Altra domanda....
    All'interno del sito (tutto in php) non vi è nulla in flash se non il controllo della musica di background (che l'utente appunto deve essere in grado di attivare o disattivare) e il tutto sarà ridotto alla classica iconcina in un angolo col bottoncino "music on / music off".
    Nel passaggio da una pagina all'altra, non corro il rischio che il brano riparta?
    Intendo dire, se l'utente ha messo l'ascolto in pausa, passando da una pagina all'altra, il brano deve rimanere in pausa.
    E' possibile?

    Grazie.
    ... Quando il dito indica la luna l'imbecille guarda il dito...

  4. #4
    Utente di HTML.it L'avatar di NAP
    Registrato dal
    Jan 2001
    Messaggi
    4,398
    Intanto c'è da dire che quella che definisci Pausa (con l'esempio che ti ho mostrato) è solo uno Stop (la pausa vera e propria si può fare ma non è il caso che io te la spieghi adesso).

    Il suono che vai a caricare per mezzo del pulsante Play funziona all'interno del FlashPlayer che quasi tutti installano quando capitano in una pagina che lo richiede. Quindi, finché l'utente non preme il pulsante Stop la tua musica continua ad esistere ma, nell'esempio che ti ho fatto, suona una sola volta, e sta zitta finché non si va a premere nuovamente il pulsante Play.
    Si può far suonare anche all'infinito ma direi che per ora, se ti spiegassi come, ti confonderei le idee.

    Il fatto è questo: se le tue nuove pagine si aprono in un unico mainFrame, allora il prob non sussiste perché i pulsanti della musica, supponiamo che tu li metta nella "testa", rimangono sempre visibili. Ovvio che se le tue nuove pagine si aprono in _blank, succede che il suono continua ad esistere quando, magari, la nuova pagina si sovrappone alla tua HP.
    In tal caso, se fosse tutto in Flash, ti saprei dire anche come far smettere il suono in caso di apertura di nuova pagina in _blank.

    Dovresti dapprima fare le prove, e dirmi come vanno. Poi dovresti dirmi che versione hai di Flash perché se hai la 5 non puoi usare il loadSound e, pertanto, non potrei spiegarti nemmeno come realizzare una vera funzione di pausa (come quella dei lettori hardware).

    Sapere che versione hai, è utile anche per il fatto che se dovessi passarti un sorgente è bene che tu sappia che io uso Flash8 Pro.

    Alla prossima,

    NAP
    A volte la diplomazia va condita con un pizzico di siluri fotonici. (K. Janeway)

  5. #5
    la pausa vera e propria si può fare? come?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.