Comunidad de diseño web y desarrollo en internet online

Problema con xml en varios fotogramas (AS3)

Citar            
MensajeEscrito el 23 Jun 2011 09:37 am
Hola a todos,

tengo un xml con 5 secciones el cual lo quiero cargar en 5 fotogramas en los cuales he incluido una caja de texto dinámico.

cuando publico el primer fotograma se carga bien su sección pero cuando voy al resto de fotogramas no carga el xml y me sale este mensaje:

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at index_fla::MainTimeline/cargaCompleta()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

Llevo un par de días con ello y no se donde está el error.

Pongo el código.

import flash.net.URLRequest;
import flash.display.Loader;

var loader: URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, cargaCompleta);
var xmlUrl:URLRequest = new URLRequest("contenidos.xml")
loader.load(xmlUrl);
var texto: String;
var direccion: String;


function cargaCompleta(e:Event): void
{
var miXml:XML = new XML(e.currentTarget.data);

texto = miXml.conocenos[0];
caja_txt_conocenos.text = texto;

texto = miXml.objetivos[0];
caja_txt_objetivos.text = texto;

texto = miXml.proyecto[0];
caja_txt_proyecto.text = texto;

texto = miXml.horarios[0];
caja_txt_horarios.text = texto;

texto = miXml.actividades[0];
caja_txt_actividades.text = texto;

texto = miXml.comedor[0];
caja_txt_comedor.text = texto;

texto = miXml.objetivos[0];
caja_txt_objetivos.text = texto;

texto = miXml.donde[0];
caja_txt_donde.text = texto;


}



Gracias

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 11:10 am
¿Tienes este código repetido en cada fotograma?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 11:14 am
no, solo lo tengo en un fotograma en una capa por encima de las demás

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 11:24 am
Entonces tienes que guardar las propiedades que no esten en el fotograma donde tienes el código en una variable. Supongamos que comedor está en el fotograma cuatro, entonces en vez de:

texto = miXml.comedor[0];
caja_txt_comedor.text = texto;

Usas

var comedor:String = miXml.comedor[0];

Y en el fotograma 4

caja_txt_comedor.text = comedor

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 11:41 am
Hola

he puesto lo que me dices y me sale este error cuando publico


web, Capa 'comedor', Fotograma 120, Línea 1 1120: Acceso a una propiedad comedor no definida.

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 11:56 am
Tiene que estar todo en una misma linea de tiempo, la carga y declaración de variables en fotograma 1, la variable usada en fotograma 4, si te cambias de línea de tiempo pierdes la variable

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 12:57 pm
Hola Jorge,
me sigue dando el mismo error de Acceso a una propiedad comedor no definida.

Creo que el problema está en que cuando pulso en otro botón para ir a otra sección de la web ya no encuentra la ruta del xml.

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 01:50 pm
La idea hablando siempre sobre un mismo timeline, es que en un primer frame captures toda la data en variables, luego las uses en las secciones. Es importante que tengas en cuentas las rutas, por ejemplo si el campo de texto está dentro de un MovieClip llamado miseccion, la ruta será

miseccion.caja_txt_comedor.text = comedor

Y luego tienes que asegurarte de no moverte antes de que haya terminado de cargar el XML

Jorge

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 04:04 pm
He probado lo que me dices pero sigue sin funcionarme. ¿Tienen que ser funciones globales?

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 04:05 pm
Todo en la misma línea de tiempo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 04:29 pm
Creo que no expuse bien el tema en el primer post, cada sección del menú la tengo en una capa diferente y dentro de cada capa en un fotograma diferente.

La única caja de texto que se carga bien es la que tengo en el fotograma 20 capa conocenos que coincide en fotograma con la capa acciones. El resto de caja de texto están en diferentes capas y fotogramas.

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 04:41 pm
Línea de tiempo no es capa ni fotograma, sino un conjunto de fotogramas que contiene un MovieClip. Típicamente existe la línea de tiempo principal y luego cualquiera de las que tiene los MovieClips que usas en tu escenario. Entonces, si la programación no está en la misma línea de tiempo (si no queda claro que es línea de tiempo puedes revisarlo en la ayuda) entonces tendrás que usar rutas. Una opción si eres principiante en programación, es que uses todas las variables globales para que las encuentre la programación que teines metida dentro de los MC

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 04:56 pm
No uso MC y las acciones las tengo en una capa llamada acciones. El resto lo tengo en diferentes capas. Soy principiante en programación. ¿Como funciona lo de las variables globales?

Gracias y perdona por lo pesado que soy

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 05:35 pm
Ok, si está todo en una misma capa (por ende en una misma linea de tiempo) deber{ia funcionar. ¿Que error da?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 05:38 pm
Este es el error cuando publico


TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at index_fla::MainTimeline/cargaCompleta()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 05:39 pm
Ok, dentro de cargaCompleta tiene un monton de asignaciones a cajas de texto. Solo puedes tener las que actualmente esten en el escenario, el resto, si estan en otro fotograma, te daran error

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 05:43 pm
¿ y como lo hago para que cuando pulse otro botón y me lleve a otro fotograma me cargue en una caja de texto otra etiqueta del xml?

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 05:46 pm
Es lo que te respondí con el ejemplo de comedor, dale vueltas

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 05:52 pm
pero,

algo no entiendo, solo con poner en el fotograma 4 el código

caja_txt_comedor.text = comedor


también me da error. Algo me falta. Llevo todo el día con esto y empiezo a estar espeso.

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 05:53 pm
Siempre que digas "da error" pon que error da

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 05:56 pm
Sorry,
siempre el mismo

TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 06:01 pm
Ok, alguno de los dos elementos no está definido> la variable o la caja de texto. Para saberlo trazaremos poniendo este código en el fotograma 4 (o en el que lo estes probando)

Código ActionScript :

try{
   trace(comedor)
} catch(e:Error){ trace("La variable comedor no existe")}
try{
   trace(caja_txt_comedor)
} catch(e:Error){ trace(" la caja de texto caja_txt_comedor no existe") }


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 06:42 pm
A ver si me entero,

en la capa acciones fotograma 20 tengo todo el código:

import flash.events.Event;

stop();


//---------------------------------Acciones botones-------------------------------------------------------


btn_conocenos.addEventListener(MouseEvent.MOUSE_DOWN, fClick_conocenos);
function fClick_conocenos(e:MouseEvent):void
{
gotoAndStop(20,"web");
}


btn_objetivos.addEventListener(MouseEvent.MOUSE_DOWN, fClick_objetivos);
function fClick_objetivos(e:MouseEvent):void
{
gotoAndStop(40,"web");
}

btn_proyecto.addEventListener(MouseEvent.MOUSE_DOWN, fClick_proyecto);
function fClick_proyecto(e:MouseEvent):void
{
gotoAndStop(60,"web");
}


btn_horarios.addEventListener(MouseEvent.MOUSE_DOWN, fClick_horarios);
function fClick_horarios(e:MouseEvent):void
{
gotoAndStop(80,"web");
}

btn_actividades.addEventListener(MouseEvent.MOUSE_DOWN, fClick_actividades);
function fClick_actividades(e:MouseEvent):void
{
gotoAndStop(100,"web");
}

btn_comedor.addEventListener(MouseEvent.MOUSE_DOWN, fClick_comedor);
function fClick_comedor(e:MouseEvent):void
{
gotoAndStop(120,"web");
}

btn_donde.addEventListener(MouseEvent.MOUSE_DOWN, fClick_donde);
function fClick_donde(e:MouseEvent):void
{
gotoAndStop(140,"web");
}

btn_visita.addEventListener(MouseEvent.MOUSE_DOWN, fClick_visita);
function fClick_visita(e:MouseEvent):void
{
gotoAndStop(160,"web");
}

btn_medios.addEventListener(MouseEvent.MOUSE_DOWN, fClick_medios);
function fClick_medios(e:MouseEvent):void
{
gotoAndStop(225,"web");
}

btn_album.addEventListener(MouseEvent.MOUSE_DOWN, fClick_album);
function fClick_album(e:MouseEvent):void
{
gotoAndStop(245,"web");
}

btn_noticias.addEventListener(MouseEvent.MOUSE_DOWN, fClick_noticias);
function fClick_noticias(e:MouseEvent):void
{
gotoAndStop(265,"web");
}




///----------------------------------Carga de textos por xml--------------------------------------

import flash.net.URLRequest;
import flash.display.Loader;

var loader: URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, cargaCompleta);
var xmlUrl:URLRequest = new URLRequest("contenidos.xml")
loader.load(xmlUrl);
var texto: String;
//var direccion: String;


function cargaCompleta(e:Event): void
{
var miXml:XML = new XML(e.currentTarget.data);

var conocenos:String = miXml.conocenos[0];


var objetivos:String = miXml.objetivos[0];


var proyecto:String = miXml.proyecto[0];


var comedor:String = miXml.comedor[0];


var actividades:String = miXml.actividades[0];


var comedor:String = miXml.comedor[0];


var objetivos:String = miXml.objetivos[0];


var donde:String = miXml.donde[0];
}


Luego en los fotogramas 20, 40, 60, 80, 100, 120 y 140 pongo el código:

caja_txt_comedor.text = comedor según corresponda a cada sección

Ahora no carga ninguna de las cajas de texto

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 07:06 pm
Te pedí que hicieras unos trace en el fotograma que daba el error, ¿que te sale?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 23 Jun 2011 07:09 pm
No sale nada, todo es muy raro. La web se carga y no para donde le digo stop, va a hasta el final y vuelve al principio y vuelve a reproducir

Por sanchinarro

8 de clabLevel



 

safari
Citar            
MensajeEscrito el 23 Jun 2011 07:17 pm
Ok, me parece que falta base, y esto va a un hilo interminable. Si le encuentras alguna punta vuelve

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.