« Consigli per una presentazione live | Index | Photoshop CS3 Learning Center su Photoshopuser.com »

um_minilogo.gif Cerchi articoli, tutorial e guide su Photoshop CS3, Flash CS3, Premiere Pro CS3, Actionscript 3, Flex 3 e Adobe AIR, Java e Microsoft Silverlight ?
Scarica gratis UserMatter, il magazine che tratta la User Experience. Nell'ultimo numero trovi anche: Introduzione alla programmazione orientata agli oggetti, Salvare le immagini per il web con una mappatura Alpha

Caricare un Flash video (FLV) esterno con Actionscript e Flash 8 Professional

Durante l'ultimo eSeminar di Adobe Italia che ho tenuto dal titolo :

Riconoscimento del movimento con la Webcam in Adobe Flash 8

mi è stato chiesto di fare un paio di esempi base prima di andare a parlare di intercettazione della WebCam con Actionscript.
Così sono venuti fuori un pò di esempi carini che ho deciso di condividere sul blog di AUGItaly.
Partiamo dal primo esempio creato, quello cioè che permette di caricare un video FLV esterno in un'applicazione Flash senza usare nessun flash Component.

Per poter caricare un video all'interno del nostro Stage, primadi tutto ci andiamo a creare dalla Library un nuovo oggetto video : New Video.
Trasciniamo questo elemento sulla timeline e gli assegniamo un nome d'istanza. Nle mio caso l'ho chiamato "video".
Per associare a questo oggetto un video in formato FLV (Flash Video) debbo pirma di tutto creare un'istanza della classe NetConnection ed invocare il metdo connect():

var nc:NetConnection = new NetConnection();
nc.connect(null);

Adesso dobbiamo creare un'istanza della classe NetStream che accetta come parametro passato al costruttore l'istanza della NetConnection :

var ns:NetStream = new NetStream(nc);

Non ci resta che attaccare l'istanza NetStream all'oggetto video trascinato sullo Stage ed eseguire il metodo play() esposto dalla classe NetStream :

video.attachVideo(ns);
ns.play("video.flv");

Per rendere l'esempio più carino, abbiamo aggiunto anche due pulsanti per gestire la pausa ed il play sull'oggetto Video. Questi pulsanti li abbiamo presi dalla palette Component di Flash, dalla categoria FLV Palyback Custom UI, e li abbiamo messi sullo Stage assegnando un nome d'istanza pari a : btnPlay e btnPause.

Per creare le funzionalità ai bottoni basta andare a gestire l'evento onPress() dei pulsanti :

btnPlay.onPress = function()
{
ns.pause(false);

}

Il codice finale del nostro esempio è quindi il seguente :

var nc:NetConnection = new NetConnection();
nc.connect(null);

var ns:NetStream = new NetStream(nc);

video.attachVideo(ns);
ns.play("melissa_profile.flv");

// Gestione dei pulsanti per il Play e la Pausa
btnPlay.onPress = function()
{
ns.pause(false);

}

btnPause.onPress = function()
{
ns.pause(true);

}

Nei prossimi post vedremo come caricare da un menu a tendina file flash video multipli.

TrackBack

TrackBack URL per questo post:
http://blog.augitaly.com/mt-tb.cgi/17

Commenti (3)

Andrea:

Molto interessante, ma come mai sotto explorer non mi fa vedere il video mentre sotto firefox va una meraviglia?

Luigi:

innanzitutto Complimenti,

poi mi piacerebbe capire però come riuscire a tracciare il completamento del filmato.

nel senso... una volta terminata la riproduzione del filmato come dirgli di passare al sofogramma successivo?

Grazie

ciao,
ho un quesito da porre e spro che qualcuno possa aiutarmi.
Uso un lettore video personalizzato con tasto PLAY/STOP.
In scrivania tutto benissimo, mentre sull'area remota se vado a testare dala pagina html perdo il controllo del video °-°

Ovviamente il video è on line le dictories sono le stesse.

Lo script che sto usando è:

var myVid:Video;
var playButton:Button;
var stopButton:Button;

var myNetConnection:NetConnection = new NetConnection();
myNetConnection.connect (null);
*** ecco qui il manuale mi da varie opzioni ma non le spiega benissimo: mi dice che questa stabilisce il collegamento con server locale o hd, poi ci sono NetConnection.close() e .call
Ho provato tutto ma quando il file è nell'area remota lo perdo.
Ho provato anche a cambiare il path del file usando http:// e posizione su area remota.
Niente di niente.
Non ho risorse oltre al manuale...

var myNetStream:NetStream = new NetStream(myNetConnection);
myVid.attachVideo(myNetStream);
myNetStream.play("video/automne.flv");
myNetStream.pause(true);

playButton.onPress = function() {
myNetStream.pause(false);
setProperty("playButton_bianco", _visible, true);
setProperty("stopButton_bianco", _visible, false);
}

stopButton.onPress= function() {
myNetStream.pause(true);
setProperty("playButton_bianco", _visible, false);
setProperty("stopButton_bianco", _visible, true);
}

xxx
grazie a priopri

monica

Invia un commento

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)