Tengo un script que carga archivos .swf externos. Esto lo hace de maravilla!. El problema que tengo es que una vez cargado el archivo externo no puedo interectuar dentro de él. O sea si el archivo .swf lleva un boton no puedeo ejecutar-lo porque a lo mejor se encuentra en otra capa.
Como lo puedo resolver. Codigo sript:
//carpeta donde guardamos nuestros elementos a cargar
var almacen:String = "elementos/";
//ancho de nuestra película en flash
var ancho:Number = Stage.width;
//alto de nuestra película
var alto:Number = Stage.height;
//creamos un contenedor donde se cargaran los files externos
//tambien puedes crear manualmente un pequeño movie clip donde va a ir el contenido le quevantemos
this.createEmptyMovieClip("contenedor_mc", 30);
//aquí creamos una transición para nuestras pelis para cuando se carguen tengan
//un efectito de Fade
//importamos los elementos necesarios para este efecto
import mx.transitions.*;
import mx.transitions.easing.*;
//creamos una función y le pasamos como parámetro que película debe ser afectada por el efecto
function fade(peli) {
TransitionManager.start(peli, {type:Fade, direction:Transition.IN, duration:1, easing:None.easeNone});
}
//creamos una nueva película que será un marco alrededor de la que carguemos
this.createEmptyMovieClip("marco_mc", 10);
//creamos una función para que pinte cada película que carguemos
function pintarMarco(target_mc:MovieClip, largoMarco:Number, altoMarco:Number) {
//el espesor del marco
var anchorMarco:Number = 20;
//el color del marco
var colorBorde = 0x00CCFF;
//la transparencia del marco
var transparenciaBorde = 100;
//y aplicamos los cambios
//uso "with" para no tener que escribir el nombre de instancia de nuevo
with (target_mc) {
beginFill(colorBorde, transparenciaBorde);
moveTo(0, 0);
lineTo(10, 0);
lineTo(10, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_width = largoMarco+anchorMarco;
_height = altoMarco+anchorMarco;
_x = contenedor_mc._x-(anchorMarco/2);
_y = contenedor_mc._y-(anchorMarco/2);
}
}
//creamos un nuevo elemento MovieClipLoader que es el encargado de controlar y cargar nuestras pelis
var mcLoader:MovieClipLoader = new MovieClipLoader();
//creamos un escuchador con el cual sabremos que esta pasando en cada proceso
var escuchar:Object = new Object();
//si se inicia y mientras este cargándose...
escuchar.onLoadProgress = function(target:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
//creamos lo necesario para averiguar el porcentaje de carga
var persoTotal = bytesTotal;
var cargados = bytesLoaded;
var porcentaje = Math.round(cargados*100/persoTotal);
//movemos la barra al porcentaje cargado
barraPorcentaje_mc.gotoAndStop(porcentaje);
//escribimos el porcentaje en modo texto en la barrita de carga
barraPorcentaje_mc.cargado_txt.text = porcentaje+"%";
};
//con esta función podemos asignarle propiedades antes de que se muestre
escuchar.onLoadInit = function(target:MovieClip) {
//posicionamos el elemento que s esta cargando al centro, ustedes colóquenlo donde lo necesiten
target._x = (ancho/2)-(target._width/2);
target._y = (alto/2)-(target._height/2);
//mostramos el marco
marco_mc._visible = true;
//pintamos y acomodamos el marco
pintarMarco(marco_mc, target._width, target._height);
//aplicamos el efecto fade
fade(target);
//como pueden ver "target" es la peli afectada
};
//si la carga comenzó
escuchar.onLoadStart = function(target:MovieClip) {
marco_mc._visible = false;
barraPorcentaje_mc._visible = true;
};
//si la carga finalizo
escuchar.onLoadComplete = function(target:MovieClip, httpStatus:Number) {
barraPorcentaje_mc._visible = false;
};
//
mcLoader.addListener(escuchar);
//ACCIONES SIMPLES BOTONES
cargarJpg_btn.onRelease = function() {
//en este caso llamamos a un jpg y el destino es "contenedor_mc"
//como contenedor_mc tiene un escuchador activara automáticamente todo lo que vimos arriba
mcLoader.loadClip(almacen+"1.jpg", contenedor_mc);
//esto es por si nuestro efecto fade se descontrola
contenedor_mc._alpha = 100;
};
cargarPng_btn.onRelease = function() {
//en este caso llamamos a un png y el destino es "contenedor_mc"
//como contenedor_mc tiene un escuchador activara automáticamente todo lo que vimos arriba
mcLoader.loadClip(almacen+"1.png", contenedor_mc);
//esto es por si nuestro efecto fade se descontrola
contenedor_mc._alpha = 100;
};
cargarSwf_btn.onRelease = function() {
//en este caso llamamos a un swf y el destino es "contenedor_mc"
//como contenedor_mc tiene un escuchador activara automáticamente todo lo que vimos arriba
mcLoader.loadClip(almacen+"home.swf", contenedor_mc);
//esto es por si nuestro efecto fade se descontrola
contenedor_mc._alpha = 100;
};
cargarSwf1_btn.onRelease = function() {
//en este caso llamamos a un swf y el destino es "contenedor_mc"
//como contenedor_mc tiene un escuchador activara automáticamente todo lo que vimos arriba
mcLoader.loadClip(almacen+"ulls13.jpg", contenedor_mc);
//esto es por si nuestro efecto fade se descontrola
contenedor_mc._alpha = 100;
};
Gracias anticipadas[/flash]
