Foros del Web » Creando para Internet » Flash y Actionscript »

LocalConection y Preloader entre AS3 y AS2

Estas en el tema de LocalConection y Preloader entre AS3 y AS2 en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 07/02/2011, 09:30
 
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

Etiquetas: preloader
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:00.