Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2011, 09:30
blancototal
 
Fecha de Ingreso: septiembre-2009
Mensajes: 12
Antigüedad: 14 años, 7 meses
Puntos: 0
LocalConection y Preloader entre AS3 y AS2

Buenas a todos

Queira comentar aqui mi problema para ver que estoy haciendo mal

Para empezar os pongo en situación:

Estoy haciendo un player en AS3 que me cargue dentro como si fuese un marco distintos swf (MovieClips o AVM1). Ya que en AS3 no puedo cargar videos AVM1, lo que tengo hecho es un puente (por asi decirlo) en AS2 que es el que se encarga de cargar los swf de los tipos.

De esta forma el funcionamiento queda asi, mi player en AS3 carga el SWF puente (AS2) y luego mediante LocalConection lo invoco para que realice la diversas funciones que necesito (play, stop, load, etc). Os pongo el codigo del puente


Código:
import mx.events.EventDispatcher;
EventDispatcher.initialize(MovieClip.prototype);

var AVM_lc:LocalConnection = new LocalConnection(); 
var marco:MovieClip = createEmptyMovieClip("marco",0 );
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);

//mcLoader.loadClip("./archivo.swf", marco);

function onLoadInit(mc:MovieClip) {
    trace("play... ");
}
function onLoadComplete(mc:MovieClip) {
    trace("cargado!");
}
function onLoadProgress(mc:MovieClip) {
    trace("cargando: " + Math.round((mc.getBytesLoaded()/mc.getBytesTotal())*100) + " %");
}

function onEnterFrame(mc:MovieClip) {
	if (marco._currentframe == marco._totalframes){
		marco.stop();
		this.onEnterFrame = null;
	}
}

AVM_lc.loadPeli = function(url:String){
	marco.unloadMovie(); 
	mcLoader.loadClip(url, marco);
}  
AVM_lc.stopPeli = function(){ 
    marco.stop(); trace("stop");
} 
AVM_lc.playPeli = function(){
    marco.play(); 
}

AVM_lc.connect("player2bridge");  
AVM_lc.client = this;

El puente funciona perfectamente, cuando lo instancio y luego lo uso desde el player mediante LocalConection. El problema es que si lo hago así, el listener que hay para controlar los eventos onLoadProgress, onLoadComplete y onlLoadInit deja de funcionar y no me traza nada.
En cambio si descomento la linea en rojo para hacer una prueba independiente solo con el puente AS2 se me carga la pelicula sin problemas también pero esta vez si que me funciona el listener y si que me traza

Lo que quiero conseguir cn este puente en AS2 es a parte de poder cargar los MovieClip y los AVM1 indiferentemente, es poder utilizarlo como preloader ya que controlo la carga en memoria del .swf cargado y como he dicho, si lo pruebo directamente cargando un video funcionan los listener, pero si lo invoco desde otro lado los listeners no se disparan



Muchas gracias y un saludo