Selito, le tienes que añadir un listener a tu botón. Si supongo que tienes un botones, con nombre de instancia "boton1" debes escribir
Código ActionScript :
//TODAVÏA NO FUNCIONA
boton1.addEventListener(MouseEvent.CLICK,botonPulsado)
private function botonPulsado(e:MouseEvent){
//Aquí todo tu código
var contenedor:MovieClip = new MovieClip();
var loader:Loader = new Loader();
loader.load(new URLRequest("donde.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, insertMovie);
}
function insertMovie(evt:Event):void{
addChild(contenedor).name = "contenedorindex";
contenedor.addChild(loader).name = "loader";
}
stop()
Vale, existe un problema y es que, ni contenedor ni loader tiene ningún valor DENTRO de la función "insertMovie". Eso es porque lo hemos declarado DENTRO de otra función, así que, declarémoslos fuera
Código ActionScript :
//declaramos las variables
var contenedor:MovieClip
var loader:Loader
//Nuestro listener
boton1.addEventListener(MouseEvent.CLICK,botonPulsado)
private function botonPulsado(e:MouseEvent){
//Aquí simplemente les damos valor
contenedor:MovieClip = new MovieClip();
loader= new Loader();
loader.load(new URLRequest("donde.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, insertMovie);
}
function insertMovie(evt:Event):void{
addChild(contenedor).name = "contenedorindex";
contenedor.addChild(loader).name = "loader";
}
NOTAS:
NOTA1.-NO es necesario añadir un loader DENTRO de un contenedor, se puede añadir directamente al "stage"
Código ActionScript :
//declaramos las variables
var loader:Loader
//Nuestro listener
boton1.addEventListener(MouseEvent.CLICK,botonPulsado)
private function botonPulsado(e:MouseEvent){
//Aquí simplemente les damos valor
loader= new Loader();
loader.load(new URLRequest("donde.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, insertMovie);
}
function insertMovie(evt:Event):void{
addChild(loader).name = "loader";
}
NOTA2:Tampoco es necesario añadir el loader DESPUÉS de cargar la película
Código ActionScript :
//declaramos las variables
var loader:Loader
//Nuestro listener
boton1.addEventListener(MouseEvent.CLICK,botonPulsado)
private function botonPulsado(e:MouseEvent){
//Aquí simplemente les damos valor
loader= new Loader();
loader.load(new URLRequest("donde.swf"));
//Y lo añadimos
addChild(loader).name = "loader_name"; //<--te he cambiado el nombre
}
Ya que hemos declarado la variable fuera, aunque le podemos dar valro a su "propiedad" name, podemos usar la variable "loader". Vamos, en cualquier lugar de nuestra película podríamos escribir
Código ActionScript :
var ld:Loader=getChildByName("loader_name") as Loader
ld.x=100
//que
loader.x=100
NOTA3:Es sobre el argumento de nuestra función "botonPulsado": ese "e:MouseEvent". Lo podemos usar para aplicar la misma función a varios botones. Lo pongo con un ejemplo simple de dos botones cuyo nombre de instancia sean "boton1" y "boton2"
Código ActionScript :
boton1.name="boton1_name"
boton2.name="boton2_name"
boton1.addEventListener(MouseEvent.CLICK,botonPulsado)
boton2.addEventListener(MouseEvent.CLICK,botonPulsado)
private function botonPulsado(e:MouseEvent){
switch (e.target.name){
case "boton1_name":
trace("boton1")
break
case "boton2_name":
trace("boton2")
break
}
}
NOTA4:(la última, lo juro) Cuando vamos a cargar varias películas, lo "suyo" es cargarlas en EL MISMO loader. Así que podemos tener un único "Loader"
Código ActionScript :
boton1.name="boton1_name"
boton2.name="boton2_name"
boton1.addEventListener(MouseEvent.CLICK,botonPulsado)
boton2.addEventListener(MouseEvent.CLICK,botonPulsado)
//creo un loader y lo añado
var loader:Loader =new Loader()
addChild(loader)
private function botonPulsado(e:MouseEvent){
string pelicula="";
switch (e.target.name){
case "boton1_name":
pelicula="pelicula1.swf";
break
case "boton2_name":
pelicula="pelicula2.swf";
break
}
loader.load(new URLRequest(pelicula));
}
NOTA5:Si has conseguido llegar hasta aquí, ¡¡enhorabuena!!