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

removeChild con Checkbox AS3

Estas en el tema de removeChild con Checkbox AS3 en el foro de Flash y Actionscript en Foros del Web. Holas, que tal... Anteriormente había posteado un tema: deseleccionar checkbox AS3 que al seleccionar cada check te mostraba un objeto. Ahora estoy intentado cargar los ...
  #1 (permalink)  
Antiguo 09/01/2010, 09:52
Avatar de annirami  
Fecha de Ingreso: septiembre-2009
Ubicación: Lima, Perú
Mensajes: 53
Antigüedad: 15 años, 1 mes
Puntos: 3
Mensaje removeChild con Checkbox AS3

Holas, que tal...
Anteriormente había posteado un tema: deseleccionar checkbox AS3 que al seleccionar cada check te mostraba un objeto.

Ahora estoy intentado cargar los check con swf externos. Si funciona pero cuando deselecciono el check el swf no se va, sigue en el escenario. He puesto removeChild(loader), pero no me ha funcionado.

Aquí dejo un enlace de lo que hize y mi código:

http://dl.dropbox.com/u/1550516/chec...-cargaswf.html

var i:int;
var numeros:int=4;

enlace1.addEventListener(MouseEvent.CLICK, ir);
enlace2.addEventListener(MouseEvent.CLICK, ir);
enlace3.addEventListener(MouseEvent.CLICK, ir);
enlace4.addEventListener(MouseEvent.CLICK, ir);

borra.addEventListener(MouseEvent.CLICK,borrar);
function ir(event:MouseEvent):void {

for (i=1; i<=numeros; i++) {
var request:URLRequest=new URLRequest("ico"+i+".swf");
var loader:Loader = new Loader();
loader.load(request);
addChild(loader);

if (this["enlace"+i].selected==false) {
removeChild(loader);
}
}
}
function borrar(event:MouseEvent):void {
for (i=1; i<=numeros; i++) {
this["enlace"+i].selected=false;
}
}


Alguién podría ayudarme con esta duda y ver que hay de mal en mi código?
Gracias;
  #2 (permalink)  
Antiguo 09/01/2010, 10:36
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: removeChild con Checkbox AS3

Código PHP:
import     fl.controls.CheckBox
var xml:XML=
<
contenido>
<
url name="chec1">ico1.swf</url>
<
url name="chec2">ico2.swf</url>
<
url name="chec3">ico3.swf</url>
<
url name="chec4">ico4.swf</url>
</
contenido>

function 
createCheckBox(){
    for (var 
i:int=0;i<xml.child('url').length();i++){
        var 
checkBox:CheckBox=new CheckBox()
        
checkBox.label=xml.url[i].@name
        checkBox
.y=checkBox.height*i
        addEvent
(checkBox,i,xml.url[i])
        
addChild(checkBox)
    }
}
function 
addEvent(checBox:CheckBox,id:int,url:String):void{
    var 
loader:Loader=new Loader()
    
addChild(loader)
    
checBox.addEventListener(Event.CHANGEupLoadDownLoad);
    function 
upLoadDownLoad(event:Event):void{
        if (
checBox.selected) {
            
loader.load(new URLRequest(url))
        }else{
            
loader.unload();
        }
    }
    
}
createCheckBox() 
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #3 (permalink)  
Antiguo 09/01/2010, 10:50
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: removeChild con Checkbox AS3

se me olvidaba la función de limpieza XDXD


Código PHP:
import     fl.controls.CheckBox
var xml:XML=
<
contenido>
<
url name="chec1">ico1.swf</url>
<
url name="chec2">ico2.swf</url>
<
url name="chec3">ico3.swf</url>
<
url name="chec4">ico4.swf</url>
</
contenido>
var 
containerCheckBox:Array=new Array()
var 
containerLoader:Array=new Array()
function 
createCheckBox(){
    for (var 
i:int=0;i<xml.child('url').length();i++){
        var 
checkBox:CheckBox=new CheckBox()
        
checkBox.label=xml.url[i].@name
        checkBox
.y=checkBox.height*i
        addEvent
(checkBox,i,xml.url[i])
        
        
containerCheckBox.push(checkBox)
        
addChild(checkBox)
    }
}
function 
addEvent(checBox:CheckBox,id:int,url:String):void{
    var 
loader:Loader=new Loader()
    
containerLoader.push(loader)
    
addChild(loader)
    
checBox.addEventListener(Event.CHANGEupLoadDownLoad);
    function 
upLoadDownLoad(event:Event):void{
        if (
checBox.selected) {
            
loader.load(new URLRequest(url))
        }else{
            
loader.unload();
        }
    }
}
function 
limpiar(event:Event):void{
    for(var 
i:int=0;i<containerCheckBox.length;i++){
        
containerCheckBox[i].selected=false
        containerLoader
[i].unload()
    }
}

createCheckBox()
boton.addEventListener(MouseEvent.CLICK,limpiar
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #4 (permalink)  
Antiguo 09/01/2010, 10:57
Avatar de annirami  
Fecha de Ingreso: septiembre-2009
Ubicación: Lima, Perú
Mensajes: 53
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: removeChild con Checkbox AS3

Hola, Muchas gracias por el código, es mucho más complejo, de lo que yo sé de AS3, pero una pregunta, por lo que leo los checks los estás creando con el mismo código, como hago para que funcione con los checks que están en el escenario. Lo que pasa es que mis checks están puestos en el escenario...

muchos saludos y Gracias :]
  #5 (permalink)  
Antiguo 09/01/2010, 11:24
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: removeChild con Checkbox AS3

por lo que vi de tu código el nombre de instance de cada checkBox es enlace1,enlace2,etc asi que el codigo seria asi


Código PHP:
import     fl.controls.CheckBox
var xml:XML=
<
contenido>
<
url name="enlace1">ico1.swf</url>
<
url name="enlace2">ico2.swf</url>
<
url name="enlace3">ico3.swf</url>
<
url name="enlace4">ico4.swf</url>
</
contenido>
var 
containerCheckBox:Array=new Array()
var 
containerLoader:Array=new Array()
function 
createCheckBox(){
    for (var 
i:int=0;i<xml.child('url').length();i++){
        var 
checkBox:CheckBox=this[String(xml.url[i].@name)]
        
addEvent(checkBox,i,xml.url[i])
        
        
containerCheckBox.push(checkBox)
        
addChild(checkBox)
    }
}
function 
addEvent(checBox:CheckBox,id:int,url:String):void{
    var 
loader:Loader=new Loader()
    
containerLoader.push(loader)
    
addChild(loader)
    
checBox.addEventListener(Event.CHANGEupLoadDownLoad);
    function 
upLoadDownLoad(event:Event):void{
        if (
checBox.selected) {
            
loader.load(new URLRequest(url))
        }else{
            
loader.unload();
        }
    }
}
function 
limpiar(event:Event):void{
    for(var 
i:int=0;i<containerCheckBox.length;i++){
        
containerCheckBox[i].selected=false
        containerLoader
[i].unload()
    }
}

createCheckBox()
boton.addEventListener(MouseEvent.CLICK,limpiar
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #6 (permalink)  
Antiguo 09/01/2010, 23:59
Avatar de annirami  
Fecha de Ingreso: septiembre-2009
Ubicación: Lima, Perú
Mensajes: 53
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: removeChild con Checkbox AS3

Hola, Muchas gracias por tu ayuda con los códigos, pintan muy bien! sólo quisiera pedirte un par de favores y no molesto...

Lo que pasa es que tengo varios menus con checkboxs.
Los checkbox estan dentro de un movieclip, y cuando hagas check a cada uno, los contenidos se carguen, pero no en el escenario mismo, sino dentro de un movieclip.(que es otro diferente al de los checkbox).

He intentado modificar tu código, en esta parte:

var checkBox:CheckBox=menu[String(xml.url[i].@name)]
puse menu porque es el nombre de instancia del movieclip donde están los checkbox, pero se posicionan a la parte superior izquierda...y para que carguen dentro de un movieclip, ahi sino no se me ha ocurrido nada.

Espero haber sido clara, y espero me ayudes. Gracias igualmente porque te has tomado la molestia....
Muchos saludos
  #7 (permalink)  
Antiguo 10/01/2010, 13:12
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
Respuesta: removeChild con Checkbox AS3

ten en cuenta que la carga de los loaders se ubican en el escenario si los quieres dentro de un mc tienes que anteponer el nombre del mc antes del addChild

Código PHP:
import     fl.controls.CheckBox
var xml:XML=
<
contenido>
<
url name="enlace1">ico1.swf</url>
<
url name="enlace2">ico2.swf</url>
<
url name="enlace3">ico3.swf</url>
<
url name="enlace4">ico4.swf</url>
</
contenido>
var 
containerCheckBox:Array=new Array()
var 
containerLoader:Array=new Array()
function 
createCheckBox(){
    for (var 
i:int=0;i<xml.child('url').length();i++){
        var 
checkBox:CheckBox=this.menu[String(xml.url[i].@name)]
        
addEvent(checkBox,i,xml.url[i])
        
        
containerCheckBox.push(checkBox)
    }
}
function 
addEvent(checBox:CheckBox,id:int,url:String):void{
    var 
loader:Loader=new Loader()
    
containerLoader.push(loader)
 
//aqui es donde se cargan en el escenario si los quiers dentro del mc seri asi
    
mcContenedor.addChild(loader)
    
checBox.addEventListener(Event.CHANGEupLoadDownLoad);
    function 
upLoadDownLoad(event:Event):void{
        if (
checBox.selected) {
            
loader.load(new URLRequest(url))
        }else{
            
loader.unload();
        }
    }
}
function 
limpiar(event:Event):void{
    for(var 
i:int=0;i<containerCheckBox.length;i++){
        
containerCheckBox[i].selected=false
        containerLoader
[i].unload()
    }
}

createCheckBox()
boton.addEventListener(MouseEvent.CLICK,limpiar
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft

Última edición por Lynxcraft; 10/01/2010 a las 13:18
  #8 (permalink)  
Antiguo 11/01/2010, 22:19
Avatar de annirami  
Fecha de Ingreso: septiembre-2009
Ubicación: Lima, Perú
Mensajes: 53
Antigüedad: 15 años, 1 mes
Puntos: 3
Respuesta: removeChild con Checkbox AS3

Hola, :]
Muchísimas gracias por el código; ahora si esta más que estupendo.
Estaba buscando eso de cargar un swf externo dentro de un movieclip y encontré este código:

var myLoader:Loader = new Loader();
mc. addChild (myLoader);
var url: URLRequest = new URLRequest("archivo.swf");
myLoader. load(url)


Que para que cargue dentro del movieclip, tiene la misma lógica... MUCHAS GRACIAS y muchos saludos!

Etiquetas: checkbox, removechild
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 12:39.