• User

    Problemi di audio con flash 8

    Rieccomi. Salve a tutti.
    Ho un problema con l'inserimento dell'audio nel filmato flash.
    Mi spiego.
    Ho inserito nel mio filmato al primo fotogramma su un livello nuovo due pulsanti (movie clip), Play e Stop, per controllare l'audio sul sito.
    Ho usato, come da manuale, il percorso dei Behaviors aggiungendo i comandi per ogni pulsante, play stop, ho concatenato il file musicale come descritto, ho salvato tutto ma nel test di prova l'audio non parte.
    L'errore che mi da è il seguente:
    Error Symbol=suono, layer=Layer1, frame=1:Line5: Syntax error.
    _global.Behaviors.Sound.Vero amico.start (0,1);

    Error Symbol=suono, layer=Layer2, frame=1:Line5: Syntax error.
    _global.Behaviors.Sound.Vero amico.stop ("Vero amico");

    Dov'è l'errore si sintassi se ho eseguito tutto secondo manuale?
    Grazie


  • Super User

    Ciao exdemo, prova a postare anche il codice oltre gli errori.


  • User

    Dopoaver inserito i pulsanti play e stop sulla stage ed eseguendo il test, questo è il codice di errore che mi compare:
    Error Scene=Scene 1, layer=suono, frame=1:Line 9: Syntax error.
    _global.Behaviors.Sound.Vero amico = new Sound(this._parent.BS_Vero amico);
    Error Scene=Scene 1, layer=suono, frame=1:Line 10: 'else' encountered without matching 'if'
    } else {
    Error Scene=Scene 1, layer=suono, frame=1:Line 12: Syntax error.
    _global.Behaviors.Sound.Vero amico = new Sound(this.BS_Vero amico);
    Error Scene=Scene 1, layer=suono, frame=1:Line 10: Statement must appear within on handler
    } else {
    Error Scene=Scene 1, layer=suono, frame=1:Line 13: Unexpected '}' encountered
    }
    Error Scene=Scene 1, layer=suono, frame=1:Line 5: Syntax error.
    _global.Behaviors.Sound.Vero amico.stop("Vero amico");
    Total ActionScript Errors: 6 Reported Errors: 6

    Questo invece è il codice che il programma inserisce in action per il pulsante play:

    on (release) {
    //Play Internal Sound Behavior
    if(_global.Behaviors == null)_global.Behaviors = {};
    if(_global.Behaviors.Sound == null)_global.Behaviors.Sound = {};
    if(typeof this.createEmptyMovieClip == 'undefined'){
    this._parent.createEmptyMovieClip('BS_Vero amico',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );
    _global.Behaviors.Sound.Vero amico = new Sound(this._parent.BS_Vero amico);
    } else {
    this.createEmptyMovieClip('Vero amico',new Date().getTime()-(Math.floor((new Date().getTime()) /10000)*10000) );
    _global.Behaviors.Sound.Vero amico = new Sound(this.BS_Vero amico);
    }
    _global.Behaviors.Sound.Vero amico.attachSound("Vero amico");
    if (false) {
    _global.Behaviors.Sound.Vero amico.start(0,1);
    }
    //End Behavior

    // Play Sound Behavior
    _global.Behaviors.Sound.Vero amico.start(0,1);
    // End Play Sound Behavior
    }

    Questo per il pulsnate stop:

    on (release) {
    //Stop Sound Behavior
    _global.Behaviors.Sound.Vero amico.stop("Vero amico");
    }

    Dov'è l'errore?
    Faccio notare che l'audio che ho nella libreria non lo inserisco sulla stage perchè presumo che lo carichi in automatico il software, almeno così credo di aver capito nello codice.
    Sbaglio?

    Grazie


  • Super User

    Mamma mia, per caricare un suono dalla libreria con i relativi pulsanti Play/Stop bastano 8 righe di codice, cosa dovrebbe fare tutto il codice che hai postato?


  • User

    Non ho scritto io questo codice ma il programma.
    Io ho solo inserito le icone del play e stop sullo stage che ho preso dalla libreria.
    Forse il manale che ho è troppo vecchio? visto che uso flash 8?
    Comunquese puoi aiutarmi te ne sarei grato?
    Grazie


  • Super User

    Se usi questo codice non avrai problemi, anche se io ti consiglio di non importare il suono in libreria per questioni di peso.

    
    var my_sound:Sound = new Sound();// creazione oggeto Sound
    my_sound.attachSound("nome_suono");// prendo il suono dalla libreria 
    my_sound.start();// Riproduco il suono
    Pulsante_Stop.onPress = function() {
        my_sound.stop();
    };
    Pulsante_Play.onPress = function() {
        my_sound.start();
    };
    
    

    metti questo codice nel primo frame, istanzia i pulsanti (Pulsante_Stop) (Pulsante_Play), al posto di "nome_suono" metti il nome che hai in libreria e concatenalo.


  • Super User

    Ho capito da dove hai preso quel codice hai usato i comportamenti.
    L'ho provato è funziona bene naturalmente, l' errore che hai fatto e che ha combinato tutto quel caos con tutta quella sfilza di errori e dovuto al codice che hai aggiunto per i pulsanti.


  • User

    Ok funziona alla grande.
    Ma mi è venuto un dubbio:
    mi hai detto di non caricare il brano dalla libreria perchè appesantisce il progetto.
    Per fartela breve io sto realizzando il sito interamente in flash, un sito di fotografia.
    Ho usato molte foto suddivise per categorie solo che ho utilizzato per uttte un effeto dissolvenza incrociata fra loro creando un movieclip per ogni categoria e inserendo tale movie in ogni frame separato.
    Ho fatto un test in rete e ho notato che effettiamente è molto lento a caricare il sito. Sarà per questo metodo di procedere? oppure al fatto che le foto sono 720x520 a 72 ppi ?
    Ho necessità che le foto si vedano grandi.
    Grazie per il tuo preziosissimo aiuto, vorrei un giorno poter dare anch'io un aiuto ad altri, vorrà dire che ho cominciato a capire bene questo programma.


  • Super User

    Certo è pesante perchè hai messo tutto sulla time line creando un unico file swf presumo molto pesante, per alleggerire potresti, se ho capito bene la struttura, anzichè caricare i movieclip dalla libreria, fare tanti swf quante sono le dissolvenze e caricarle come file esterni e se non
    l'hai gia fatto metterei un preloader.


  • User

    Mi potresti dire qual'è il codice per fare ciò?
    Se vuoi capire meglio cosa sto facendo puoi vederlo quì:
    giuseppelaiolo.com/ItalyweddingsPhotographer/Home.htm
    Grazie


  • Super User

    Prova a fare così se non hai problemi di posizionamento sullo stage, altrimenti bisogna fare in un modo più sofisticato.
    Faciamo finta che hai tre swf che contengono ognuno assolvenza e dissolvenza del''immagine, li chiamiamo primo.swf, secondo.swf, terzo.swf. Nel primo frame della main scrivi: loadMovie("primo.swf",1);
    nell'ultimo frame del primo.swf scrivi: loadMovie("secondo.swf",1);
    nell'ultimo frame del secondo.swf scrivi: loadMovie("terzo.swf",1);
    nell'ultimo frame del terzo.swf scrivi: loadMovie("primo.swf",1); e così il ciclo ricomincia.
    Ho preparato uno schema d'esempio che puoi scaricare da quì:
    www.dago2008.altervista.org


  • Super User

    Guarda ho fatto una prova on line con la dissolvenza non va pesa troppo e c'è stacco tra una immagine e l'altra quindi è anche peggio, niente, metti la galleria tutta insieme in un swf con un preloader in modo da segnalare all'utente che sta caricando.
    Altrimenti si potrebbe provare a caricare le immagini con un file xlm, è che non so se riesco ad aiutarti per la dissolvenza.


  • User

    Buon giorno, ci risono.
    Oggi avrò diverse domande da porre a voi esperti di flash.
    Tornando all'audio inserito nel sito come ti dicevo tutto funziona ora solo che ho notato un problema.
    1°)Quando apro il sito l'audio parte regolarmante, scorro per il sito visitando le altre pagine e tutto ok ma quando ritorno alla home page l'audio riparte da capo sovrapponendosi a quello esistente.
    Manca un riferimento?
    2°)Se volessi sospendere l'audio in una pagina particolare (tipo video) come posso procedere?
    Grazie


  • Super User

    Nel pulsante che ti riporta alla home subito dopo gotoAndPlay metti my_sound.stop() cosi il suono riprende dall'inizio senza accavallamenti.