Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Video netstream avec barre chargement
Envoyé: 1er mars 2006, 3h10 par dada
Il s'agit de "onMetaData", pas "onMediaData".
Si tu regardes la classe NetStream dans le dictionnaire ActionScript, tu la trouveras :)
C'est d'ailleurs cette partie de l'aide la plus utile. En quelques secondes tu peux visualiser toutes les possibilités d'une classe (je crois qu'ils appellent encore çà des Objets dans MX2004, sais plus).
Ton script ne marche pas car, par exemple :
bar._xscale = (netStream.bytesLoaded/netStream.bytesTotal)*100;
Cette ligne n'est lue qu'une fois dans le script, donc il ne peut y avoir d'évolution. Pour çà il faut mettre le code dans une boucle EnterFrame. C'est une boucle qui se rejoue à chaque image tant qu'on ne l'arrête pas.
J'ai repris ton code, et ajouter une boucle enterFrame dans laquelle j'ai mis ce qui ressemble à un script de préchargement ;), je n'ai pas trop regardé le reste car je n'ai rien pour le tester. Un conseil pour tester le préchargement, c'est d'augmenter la valeur du buffer au maximum, et de le tester en ligne.
---------------------------------------
// Créer un objet NetConnection :
var netConn:NetConnection = new NetConnection ();
// Créer une connexion locale en flux continu :
netConn.connect (null);
// Créer un objet NetStream et définir une fonction onStatus() :
var netStream:NetStream = new NetStream (netConn);
netStream.onStatus = function (infoObject)
{
status.text += "Status (NetStream)" + newline;
status.text += "Level: " + infoObject.level + newline;
status.text += "Code: " + infoObject.code + newline;
};
// Associer la vidéo NetStream à l'objet Video :
ma_video.attachVideo (netStream);
// Définir la durée du tampon :
netStream.setBufferTime (5);
// Lire le fichier FLV :
netStream.play ("thai.flv");
//on initialise la barre de chargement à zero
bar._xscale = 0;
//progression de la barre
this.onEnterFrame = function()
{
// calcul du pourcentage
var pourcent:Number = (netStream.bytesLoaded / netStream.bytesTotal) * 100;
// Vérifications pas forcément utiles mais comme je n'ai rien pour tester, je préfère les mettre.
// Si pourcent n'est pas un nombre ou est Infini on ne lit pas la suite.
// Pendant l'initialisation d'un charmgement j'ai déjà vu çà
if( isNaN( pourcent) || pourcent == Infinity) return;
// scale de la barre
bar._xscale = pourcent;
// quand pourcent est supérieur ou égale à 100 on arrête la boucle (on la supprime)
if( pourcent >= 100)
{
delete this.onEnterFrame;
}
}
// Bouton de lecture
play_mc.onRelease = function ()
{
// Si current_time est different de 0 (si le boutton stop a été relaché)
if (current_time != 0)
{
// On reprend la lecture de la video qui a été arrété en appuyant sur stop
netStream.pause ();
// Et current_time = 0 (l'événment onRelease de ce boutton n'appélera plus d'actions)
current_time = 0;
}
};
// Bouton stop
stop_mc.onRelease = function ()
{
// On pause le netStream
netStream.pause (true);
};
--------------------------------------
++
dada
Réponses
|