Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/07/2013, 08:44
takerik
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años, 8 meses
Puntos: 0
Pregunta Sintaxis addchild y removechild

Pretendo cargar y descargar tres archivos .swf, inicio cargando el archivo principall.swf en el escenario y posteriormente en base al boton seleccionado ir cargando y descargando los archivos
subsecuentes del escenario, los dos primeros corren de maravilla pero,al pulsar en el tercero no responde la instruccion removeChild y emite mensaje de error.
El error que emite al pulsar en los botones es :
ArgumentError: Error #2025: El objeto DisplayObject proporcionado debe ser un elemento secundario del llamador.
at flash.display::DisplayObjectContainer/removeChild()

Utilizo Flash Professional CS3 AS3.

A continuacion anexo el codigo que controla la aplicacion.

//importo lo necesario

import flash.display.*;
import flash.net.URLRequest;
import flash.events.Event;


//primera declaracion

var container:Sprite = new Sprite();
addChild(container);
var pictLdr:Loader = new Loader();
var pictURL:String = "principal.swf";
var pictURLReq:URLRequest = new URLRequest(pictURL);
pictLdr.load(pictURLReq);
pictLdr.contentLoaderInfo.addEventListener(Event.C OMPLETE, imgLoaded);
function imgLoaded(event:Event):void {
container.addChild(pictLdr.content);
}

//segunda declaracion

var container2:Sprite = new Sprite();
addChild(container2);
var pictLdr2:Loader = new Loader();
var pictURL2:String = "fotos.swf";
var pictURLReq2:URLRequest = new URLRequest(pictURL2);
pictLdr2.load(pictURLReq2);
pictLdr2.contentLoaderInfo.addEventListener(Event. COMPLETE, imgLoaded2);
function imgLoaded2(event:Event):void {
container2.addChild(pictLdr2.content);
container2.removeChild(pictLdr2.content);

}

//tercera declaracion

var container3:Sprite = new Sprite();
addChild(container3);
var pictLdr3:Loader = new Loader();
var pictURL3:String = "videos.swf";
var pictURLReq3:URLRequest = new URLRequest(pictURL3);
pictLdr3.load(pictURLReq3);
pictLdr3.contentLoaderInfo.addEventListener(Event. COMPLETE, imgLoaded3);
function imgLoaded3(event:Event):void {
container3.addChild(pictLdr3.content);
container3.removeChild(pictLdr3.content);
}

//Botones programacion

btn_uno.addEventListener(MouseEvent.CLICK, funcion1);
function funcion1(event: Event) {
container.addChild(pictLdr.content);
container2.removeChild(pictLdr2.content);
container3.removeChild(pictLdr3.content);
}
btn_dos.addEventListener(MouseEvent.CLICK, funcion2);
function funcion2(event: Event) {
container2.addChild(pictLdr2.content);
container.removeChild(pictLdr.content);
container3.removeChild(pictLdr3.content);

}
btn_tres.addEventListener(MouseEvent.CLICK, funcion3);
function funcion3(event: Event) {
container3.addChild(pictLdr3.content);
container.removeChild(pictLdr.content);
container2.removeChild(pictLdr2.content);
}

psd:
En el manual dice que al utiliizar, var pictLdr:Loader = new Loader(); unicamente se podra trabajar con un solo objeto secundario.
Existe la posibilida de cargar archivos .swf en contenedores (sprite) o (mc) o en el mismo escenario, de ser posible como es el codigo.

Como siempre agradecer cualquier respuesta , GRACIAS !!!!