Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    Sincronizzazione slides a un filmato con Actionscript 3

    Buongiorno a tutti, il mio problema è questo:

    devo sincronizzare delle immagini a un video FLV, ognuna delle quali deve essere visualizzata nel momento in cui il video raggiunge un dato tempo (es: al 5° secondo l'immagine 1, al 10° secondo l'immagine 2, al 25° secondo l'immagine 3, ecc.).

    Devo fare tutto questo utilizzando actionscript 3.

    E' stato molto facile incorporare il video con netConnection e netStream, e anche preparare lo spazio per le immagini da caricare dinamicamente.

    Ora: come faccio per mettere un listener che mi tenga controllato il tempo di riproduzione del filmato? Mi occorrerebbe una cosa tipo:

    codice:
    listener () {
      if ( filmato.time==5 )
        immagine = "nuovaImmagine.jpg";
    }
    Qualcuno mi può aiutare?

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    la classe FLVPlayback, così come la classe VideoPlayer, consente di monitorare l'evento VideoEvent.PLAYHEAD_UPDATE che verifica continuamente (secondo il valore impostato nella variabile playheadUpdateInterval) l'esecuzione del video, perciò a questo evento puoi associare una funzione che verifichi il punto in cui ci si trova nella riproduzione del filmato, e quindi una funzione da eseguire in quel termine (utilizzando una condizione if...else if oppure più facilmente uno switch...case)

  3. #3
    Grazie infinite, mi metto subito al lavoro!

  4. #4
    Scusate, sono di nuovo qui a fare domande idiote...

    Ho provato ad aggiungere il listener per PLAYHEAD_UPDATE in questo modo:

    codice:
    ns.addEventListener(VideoEvent.PLAYHEAD_UPDATE, funzAssoc);
    function funzAssoc(stato:VideoEvent)
    {
      trace(stato.playheadTime);
    }
    dove ns è il mio NetStream.

    Il risultato è un errore:

    1046: Type was not found or was not a compile-time constant: VideoEvent.

    Dov'è che sbaglio? Prometto che se è una stupidata mi autoflagello!

  5. #5
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    il tuo errore dipende dal fatto che non hai importato la classe VideoEvent
    devi aggiungere questa riga prima delle altre: import fl.video.VideoEvent

    più che altro però mi perplime che tu assegni tale evento alla classe NetStream, se non sbaglio tale evento può essere assegnato solo alle classi FLVPlayback e VideoPlayer

  6. #6
    Ora mi da un altro errore legato all'import:

    1172: Definition fl.video:VideoEvent could not be found.

    Allego tutto il codice, magari ho fatto qualche ca...volata in giro!

    codice:
    import fl.video.VideoEvent
    
    parametri['video'] = 'test.flv';
    
    // -------------------------------------------------
    // Settaggi video
    // -------------------------------------------------
    
    	// Connessione
    	var nc:NetConnection = new NetConnection();
    	nc.connect(null);
    	var ns:NetStream = new NetStream(nc);
    
    	// Creazione cornice
    	var filmato:Video = new Video(300, 240);
    	this.addChild(filmato);
    	filmato.attachNetStream(ns);
    	filmato.smoothing = true;
    	filmato.x = 685;
    	filmato.y = 10;
    	ns.play(parametri['video']);
    	
    	// Listener stato
    	ns.addEventListener(NetStatusEvent.NET_STATUS, netstat);
    	function netstat(stats:NetStatusEvent)
    	{
    	        trace(stats.info.code);
    	}
    	
    	// Listener scorrimento
    	ns.addEventListener(VideoEvent.PLAYHEAD_UPDATE, funzAssoc);
    	function funzAssoc(stato:VideoEvent)
    	{
    			trace(stato.PlayheadTime);
    	}
    
    	// Meta
    	var netClient:Object = new Object();
    	netClient.onMetaData = function(meta:Object)
    	{
    		trace(meta.duration);
    	};
    	ns.client = netClient;
    Forse l'errore è dovuto al fatto che il mio filmato è di tipo "Video" piuttosto che "VideoPlayer" o "FLVPlayback"?

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    come ti dicevo, la classe NetStream non verifica l'evento "VideoEvent.PLAYHEAD_UPDATE"
    per verificare questi eventi devi usare una classe VideoPlayer o FLVPlayback
    nel tuo caso chiaramente non va bene, sto verificando che non ci sia qualcosa di simile per la classe NetStream

  8. #8
    Per me non è un problema utilizzare FLVPlayback al posto di NetStream, però ora mi sono accorto di una cosa piuttosto singolare.

    Come già detto prima, nel fare l'import di fl.video.FLVPlayback mi da un errore.

    Ho controllato nella cartella Configuration/ActionScript 3.0/Classes/fl del mio Flash CS3 ci sono solo le cartelle lang, livepreview, motion e transitions!

    Dove sono le altre cartelle con le altre classi???

  9. #9
    Mmm... ho provato a importare anche fl.motion ma mi ha dato comunque errore..

    1172: Definition fl:motion could not be found.

    Ora non so proprio più cosa pensare...

  10. #10
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    direi che c'è qualche problema con la tua installazione
    comunque le altre classi sono dentro "Documents and Settings", non ricordo esattamente quale cartella però

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.