Originariamente inviato da nillio
E' un casino fare un preload per un .flv (da vedere in un .swf) in AS2?
No, non è complesso, è come farlo per un'immagine o un swf da caricare.
Il componente FLVPlayback contiene le proprietà "bytesLoaded" e "bytesTotal", l'unica accortezza da tenere è quella di avviare il preload quando i metadati del file video sono disponibili.
C'è un esempio di applicazione nella guida che mostra come realizzare la cosa:
Codice PHP:
/**
Richiede:
- componente FLVPlayback sullo stage con il nome di istanza: my_FLVPlybk
- componente TextArea sullo stage con il nome di istanza: my_ta
*/
import mx.video.*;
my_FLVPlybk.autoPlay = false;
var listenerObject:Object = new Object();
listenerObject.metadataReceived = function(eventObject:Object):Void {
trace("Loading: " + my_FLVPlybk.bytesTotal + " bytes.");
};
my_FLVPlybk.addEventListener("metadataReceived", listenerObject);
my_FLVPlybk.contentPath = "http://www.helpexamples.com/flash/video/water.flv";
Come puoi vedere, all'interno della funzione "listenerObject.metadataReceived" c'è un trace che mostra il peso totale, ed è lì che bisogna inserire il richiamo al preload.
Codice PHP:
function preload (v:FLVPlayback) {
this.onEnterFrame = function () {
var c:Number = v.bytesLoaded;
var t:Number = v.bytesTotal;
var p:Number = Math.floor((c/t)*100);
if (!isNaN(p)) {
trace (p+"%");
}
if (c >= t && t > p && p == 100) {
delete this.onEnterFrame;
v.play();
}
}
}
Nella funzione al posto del 100 puoi inserire la percentuale che ti interessa precaricare.