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

[SOLUCIONADO] Sintaxis addchild y removechild

Estas en el tema de Sintaxis addchild y removechild en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/07/2013, 08:44
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años
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 !!!!
  #2 (permalink)  
Antiguo 24/07/2013, 10:21
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: Sintaxis addchild y removechild

Hola takerik:
Para cargar 3 películas mediante botones, aquí un ejemplo:
Código actionscript:
Ver original
  1. var miLoader=new Loader();
  2. addChild(miLoader);
  3.  
  4. miBoton.addEventListener(MouseEvent.CLICK, pelicula);
  5. miBoton1.addEventListener(MouseEvent.CLICK,pelicula1);
  6. miBoton2.addEventListener(MouseEvent.CLICK,pelicula2);
  7.  
  8. function pelicula(e:Event)
  9. {
  10.     miLoader.load(new URLRequest("pelicula1.swf"));
  11. }
  12. function pelicula1(e:Event)
  13. {
  14.     miLoader.load(new URLRequest("pelicula2.swf"));
  15. }
  16. function pelicula2(e:Event)
  17. {
  18.     miLoader.load(new URLRequest("pelicula3.swf"));
  19. }
Acostúmbrate al publicar códigos usar el Highlight

Espero habere sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 26/07/2013, 08:23
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: Sintaxis addchild y removechild

Te agradezco el codigo trabaja bien, "pero" ,te explico. !!!
Cada uno de los archivos cargados (swf),tienen su programación independiente de donde se realizo la solicitud, uno de ellos tiene una instancia
de FLVplayback en donde por medio de botones visualizo distintos archivos .flv, sucede que al cargar dicho archivo .swf no se visualiza el video ni la instancia
FlvPlayback.
Desconozco si exista otra forma de realizar la solicitud del archivo .swf en la cual sea posible interactuar con dicho archivo , algo similar a lo realizado en AS con
loadMovieNum(x); para no perder la interactividad con dicho archivo .

Como siempre agradezco la respuesta a esta situacion,GRACIAS....
  #4 (permalink)  
Antiguo 26/07/2013, 10:48
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: Sintaxis addchild y removechild

Con el código que te di, no debes tener ningún problema al visualizar los videos que contenga, todo depende de que códigos estás usndo para cargar los diferentes videos.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #5 (permalink)  
Antiguo 27/07/2013, 09:14
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años
Puntos: 0
Respuesta: Sintaxis addchild y removechild

Con el código que te di, no debes tener ningún problema al visualizar los videos que contenga, todo depende de que códigos estás usndo para cargar los diferentes videos.
Es correcto asi es,la situacion es que al cargar el swf_2 sobre el swf_1 e efecto se visualiza el swf_2 pero toda la interactividad que tiene el swf_2 cargado sobre el swf_1 se pierde,al parecer es un codigo de seguridad algo parecido a :

var contenido:LoaderContext = new LoaderContext();
contenido.securityDomain = SecurityDomain.currentDomain;
contenido.applicationDomain = ApplicationDomain.currentDomain;

Acostúmbrate al publicar códigos usar el Highlight .
como lo realizo ?.
Nuevamente gracias por tus finas atenciones.
  #6 (permalink)  
Antiguo 27/07/2013, 11:14
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: Sintaxis addchild y removechild

No se exactamente como lo estás haciendo.
Los códigos que te di es para cargar diferentes películas en el escenario principal, los cuales se van ha sustituir entre ellos en dicho escenario.
Publica el código que estás usando para cargar los videos.
En el editor de Respuesta Rápida tienes varias opciones y una de ellas es el: Highlight, así mismo para repetir el mensaje que se te dio utiliza el que está antes del Highlight.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #7 (permalink)  
Antiguo 28/07/2013, 09:03
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años
Puntos: 0
Respuesta: Sintaxis addchild y removechild

El intercambio de peliculas trabaja de maravilla, el asunto es que cuando cargas una pelicula en la cual tengo insertado un flvplayback,no se visualiza ni el componente y mucho menos el archivo flv vinculado a dicho componente.
En cuanto a la programacion si abro directamente la pelicula, es decir sin llamarla desde otro swf,trabaja de maravilla.

codigo :

import fl.controls.*;

btn_0.addEventListener(MouseEvent.CLICK,pulsado);
function pulsado(e:MouseEvent):void {
player.source = "videos/00.flv";
  #8 (permalink)  
Antiguo 28/07/2013, 12:56
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: Sintaxis addchild y removechild

Porque no usas el Highlight para mostrar los códigos, ya te expliqué como hacerlo.
Como quieres cargar varios videos por medio de botones, el código esríbelo así:
Código actionscript:
Ver original
  1. stop();
  2. function videoUno(event:MouseEvent):void
  3. {
  4.     misVideos.source = "videos/01.flv";
  5. }
  6. function videoDos(event:MouseEvent):void
  7. {
  8.     misVideos.source = "videos/02.flv";
  9. }
  10. function videoTres(event:MouseEvent):void
  11. {
  12.     misVideos.source = "videos/03.flv";
  13. }
  14. btn_V1.addEventListener(MouseEvent.CLICK, videoUno);
  15. btn_V2.addEventListener(MouseEvent.CLICK, videoDos);
  16. btn_V3.addEventListener(MouseEvent.CLICK, videoTres);
Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #9 (permalink)  
Antiguo 29/07/2013, 08:42
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años
Puntos: 0
Respuesta: Sintaxis addchild y removechild

Estoy perdido en eso de Highlight no tengo idea de como ni donde se maneja.
Salvo tu mejor comentario creo que todo se deriva de la seguridad.
Security.LOCAL_TRUSTED;
He leido en el manual del programa pero definitivamente la sintaxis que empleo no es la correcta.
Aprecio tu paciencia estimado Bandit !!!
  #10 (permalink)  
Antiguo 29/07/2013, 10:58
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: Sintaxis addchild y removechild

Cita:
En el editor de Respuesta Rápida (Allí donde escribes tus preguntas) tienes varias opciones (botones) y una de ellas es el: Highlight, así mismo para repetir el mensaje que se te dio utiliza el que está antes del Highlight.
Para usarlo simplemente seleccionas los códigos y abres el combo presionando la flechita hacia abajo y al final dice: Otro, allí haz clic y aparecerá una ventana donde escribes ActionScript y presionas Aceptar.
Usa los códigos que te di y verás que funciona todo sin problemas.

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #11 (permalink)  
Antiguo 30/07/2013, 08:24
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años
Puntos: 0
Respuesta: Sintaxis addchild y removechild

ESPERO SER LO MÁS CLARO POSIBLE.
Tengo pelicula_1.swf,en la cual tengo insertado en el stage una instancia de FLVplayback, que reproduce un video FLV,
al publicarlo se comporta de maravilla (individualmente).
El problema radica cuando realizo la petición desde pelicula_0.swf, se logra cargar la pelicula_1.swf pero, la instancia FLVplayback
insertada no aparece mucho menos el video FLV.
Al parecer es un conflicto de seguridad, algo como Security.sandboxType, de hecho elabore un archivo .cfg con la ruta, dentro de la
carpeta FlashPlayerTrust pero nada, me esta volviendo loco esta situacion,por intentar emigrar de AS2 a AS3.
Como siempre agradeceré la oportuna respuesta a ésta incognita !!!.
  #12 (permalink)  
Antiguo 31/07/2013, 08:36
 
Fecha de Ingreso: abril-2008
Mensajes: 46
Antigüedad: 16 años
Puntos: 0
Respuesta: Sintaxis addchild y removechild

Funciona:
Éra la ruta hacia los archivos ,sería muy largo de explicar pero así fue, ahora existe un solo incoveniente
al estar cargando y descargando peliculas todo funciona bien, pero, al realizar el cambio de la pelicula en
donde se encuentra la instancia FLVplayback reproduciendo el archivo .flv, dicha pelicula desaparece no así
el audio del video,seguramente el archivo .flv se sigue reproduciendo aunque no se vea.
Como logro detener la reproducción de dicho video ?.
Como siempre agradecere los comentarios que amablemente me haces llegar.

Etiquetas: addchild, as, boton, flash, removechild, sintaxis, swf
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 15:02.