Comunidad de diseño web y desarrollo en internet online

Cargar datos xml en flash as2

Citar            
MensajeEscrito el 18 Mar 2009 09:17 pm
Buenas mirar tengo 2 problemas.
1- Tengo este codigo:

Código :

var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
obj_xml.onLoad = function(exito) {
      if (exito) {
         articulo.text = obj_xml.firstChild.childNodes[0].firstChild.nodeValue;
         descripcion.text = obj_xml.firstChild.childNodes[1].firstChild.nodeValue;
         precio.text = obj_xml.firstChild.childNodes[2].firstChild.nodeValue;
         imagen = obj_xml.firstChild.childNodes[3].firstChild.nodeValue;
         _root.pantalla_mc.loadMovie(imagen);   
      } else {
         cuerpo_txt.text = "Error";
      }
   };
{
      obj_xml.load("OFERTAS-WEB.xml");
   }


Y mi problema es que no me carga la imagen, alguna sugerencia sobre esto?

2- Y el ultimo problema que me gustaria poner dos botones al de atras y siguiente pero me gustaria que el los dos botones no salieran a no ser que haya mas de una oferta, explico:
Si hay una oferta que no salga ninguno, si hay dos que solo salga el boton de siguiente y cuando vamos a la segunda oferta que salga el boton de atras y el de siguiente que desaparezca y asi sucesibamente.

Si alguien me puede ayudar se lo agradecesia mucho.
Un saludo a todos los forofos¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Mar 2009 09:41 pm
¿¿Como es tu XML?? si te carga el XML?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 18 Mar 2009 11:36 pm
Perdon se me olvido ponerlo aqui esta:

Código :

<CONTENEDOR>

    <AVPR>
         <articulo>#AVP%ARTICULO%</articulo>
        <descripcion>#AVP%DESCRIPCION%</descripcion>
        <precio>#AVP%PRECIO%</precio>
        <imagen>#AVP%FOTO%</imagen>
    </AVPR>
    
</CONTENEDOR>


El AVPR es el lenguaje del editor de programacion exe que utilizo con esas etiquetas cada vez que se habra esa pagina se actualiza toda la base de datos ofertas y se visualizan tal y como las estan insertadas.

Un nuevo saludo gente¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
Esparo respuesta

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Mar 2009 11:54 pm
la llamda debe ser:

Código ActionScript :

obj_xml.firstChild.firstChild.childNodes[0].firstChild.nodeValue;

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 18 Mar 2009 11:56 pm
no lo entiendo como?
eso donde lo tengo que poner?

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 12:06 am
En tu codigo:

Código ActionScript :

articulo.text = obj_xml.firstChild.childNodes[0].firstChild.nodeValue;


Deberia ser:

Código ActionScript :

articulo.text = obj_xml.firstChild.firstChild.childNodes[0].firstChild.nodeValue;


Hay mas subniveles en el XML que los que contemplas en el primer script

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 19 Mar 2009 12:12 am
pues no lo se pero lo que si tengo claro es que no funciona de esa forma pero si funciona de la que puse el tema es que lo unico que no me carga es la imagen el articulo y eso si me lo carga lo que no visualiza es la imagen

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 12:15 am
:P bueno, supongo que las AVPR las pasa por alto o algo asi...

bueno dale un trace y dime todo lo que te aparece en el panel de salida:

Código ActionScript :

imagen = obj_xml.firstChild.childNodes[3].firstChild.nodeValue;
trace("->" + _root.pantalla_mc + ":" + imagen + ":" + _root.pantalla_mc.loadMovie(imagen) );

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 19 Mar 2009 02:22 am
Bueno, disculpenme , pero segun lo veo yo, y despues de probar el codigo que diste, y el formato que tiene tu xml, tu codigo trabajando me ha quedado asi:

var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
obj_xml.onLoad = function(exito) {
if (exito) {
articulo.text = this.childNodes[0].childNodes[0].childNodes[0].childNodes[0].nodeValue;
descripcion.text = this.childNodes[0].childNodes[0].childNodes[1].childNodes[0].nodeValue;
precio.text = this.childNodes[0].childNodes[0].childNodes[2].childNodes[0].nodeValue;
imagen = this.childNodes[0].childNodes[0].childNodes[3].childNodes[0].nodeValue;
_root.pantalla_mc.loadMovie(imagen);
} else {
cuerpo_txt.text = "Error";
}
};
{
obj_xml.load("OFERTAS-WEB.xml");
}

esto me funciona a la perfección, como decia el colega LongVie todo estaba a la hora de cargar el xml...

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 02:26 am
no el problema lo resolvio el el fallo estaba en _root.pantalla_mc.loadMovie(imagen);
que el cambio fue a pantalla_mc.loadMovie(imagen);
el tema de la imagen ya esta recueltop ahora solo me queda el de los botones. Un saludo gracias

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 02:33 am
Bueno, ahora para darte a una respuesta a eso dime, cada articulo que pones va a estar dentro de una etiqueta:
<AVPR> </AVPR>
es decir si huviesen 2 articulos tienes intencion de que quede asi ???

<CONTENEDOR>

<AVPR>
<articulo>#AVP%ARTICULO%</articulo>
<descripcion>#AVP%DESCRIPCION%</descripcion>
<precio>#AVP%PRECIO%</precio>
<imagen>#AVP%FOTO%</imagen>
</AVPR>
<AVPR>
<articulo>#AVP%ARTICULO%</articulo>
<descripcion>#AVP%DESCRIPCION%</descripcion>
<precio>#AVP%PRECIO%</precio>
<imagen>#AVP%FOTO%</imagen>
</AVPR>

</CONTENEDOR>

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 02:36 am
correcto mejor no se podia explicar pero las etiquetas avrp desaparecen no se por que

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 02:52 am
Bueno mira, este es un ejemplito rapido, para que puedas cacharrearlo...

var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
but._x=-200;//posicion del boton de prueba
obj_xml.onLoad = function(exito)
{
if (exito)
{
var a:Boolean =false;
if(this.childNodes[0].childNodes[1]!=null)//si existe el hijo en pos 1 es que hay mas de un hijo
a=true;
articulo.text = this.childNodes[0].childNodes[0].childNodes[0].childNodes[0].nodeValue;
descripcion.text = this.childNodes[0].childNodes[0].childNodes[1].childNodes[0].nodeValue;
precio.text = this.childNodes[0].childNodes[0].childNodes[2].childNodes[0].nodeValue;
imagen.text = this.childNodes[0].childNodes[0].childNodes[3].childNodes[0].nodeValue;
if(a)
but._x=100;//aqui es que haces aparecer a tu boton y lo pones en la posicion que quieres
}
};

obj_xml.load("OFERTAS-WEB.xml");

No se como quieras hacer aparecer tu boton, yo usalmente lo posiciono fuera de la pantalla y cuando quiero que el usuario lo vea, pues le doy una posicion que quiero dentro swf. Esto lo hago, pq ocultarlo es pesado, por el hecho de que aun cuando logres ocultarlo, si pasas el mouse por encima, te va a permitir darle clik entre otras cosas...

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 02:58 am
no me vale ese codigo mira dame tu messenger y hablamos y te paso los temas y cuando lo tenga listo lo posteo como la solucion de la imagen

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 03:01 am
Que es lo que no te vale del codigo??,
vale te doy mi gmail: [email protected], tu me diras que es lo que no te sirve del codigo...

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 03:35 am
te he agregado al messenger pero faltas tu

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 03:38 am
cual es tu user, pq no me ha dicho que me has agragado....

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 03:42 am

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 03:48 am
mira, descarga el ejemplo de esta direccion, para que lo veas...
si deseas ver si trabaja o no, ponle al xml un solo producto, y no te va a aparecer el boton, y si le pones mas de 1 te va a aparecer

http://www.filefactory.com/file/af6ffh5/n/ejemplo_rar

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 04:38 am
ok ya me lo he bajado pero lo que yo busco es mas sencillo
es que el mismo boton vea cuantas ofertas hay y salga alta que llegue a la ultima y con el boton de atras igual

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 04:39 am
mira, mejor me publicas el .fla en algun server para descargarlo, revisar que es lo que quieres y arreglartelo, pq asi no entiendo bien lo que quieres....

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 04:42 am
por eso te digo lo del messenger agragame y te paso lo que necesites

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 04:44 am
ya te agrege, pero nada....

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 01:17 pm
Me queda el ultimo problema que me gustaria poner dos botones al de atras y siguiente pero me gustaria que el los dos botones no salieran a no ser que haya mas de una oferta, explico:
Si hay una oferta que no salga ninguno, si hay dos que solo salga el boton de siguiente y cuando vamos a la segunda oferta que salga el boton de atras y el de siguiente que desaparezca y asi sucesibamente. Pero todo sin tocar las lineas de codigo anteriores.Tengo este codigo pero no se que es lo que faya por que los datos me los carga pero no me carga los botones:

Código :

stop ();
var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
but._x=-300;
but1._x=-300;
var num:Number=0;
obj_xml.onLoad = function(exito) 
{
   if (exito) 
   {

       cargar(0);
   }
 
};
cargar =function(num:Number)
{
      articulo.text = obj_xml.firstChild.childNodes[0].firstChild.nodeValue;
      descripcion.text = obj_xml.firstChild.childNodes[1].firstChild.nodeValue;
      precio.text = obj_xml.firstChild.childNodes[2].firstChild.nodeValue;
      imagen = obj_xml.firstChild.childNodes[3].firstChild.nodeValue;
      pantalla_mc.loadMovie(imagen);
   } 
   obj_xml.load("OFERTAS-WEB.xml");
if(obj_xml.firstChild.childNodes[0].firstChild.childNodes[num+1]==null)
      but1._x=-200;
   else
       but1._x=100;
    if(num==0)
      but._x=-200;
   else
      but._x=250;


Si alguien me puede ayudar se lo agradecesia mucho.
Un saludo a todos¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 03:30 pm
Ya se por que no te debe trabajar, le pusiste nombre a los botones???
Mira, te lo voy a poner mas sencillo, crea un flash nuevo, adicionale dos botones de los componentes y llamalos "but" y "but1" respectivamente. Adiciona ademas 4 labels de los componentes tambien y llamalos "articulo", "descripcion", "precio" e "imagen" respectivamente. Luego en el primer frame del flash copia este codigo:

var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
but._x=-200;
but1._x=-200;
var num:Number=0;
obj_xml.onLoad = function(exito)
{
if (exito)
_root.cargar(0);

};

obj_xml.load("OFERTAS-WEB.xml");
cargar =function(num:Number)
{
articulo.text = obj_xml.childNodes[0].childNodes[num].childNodes[0].childNodes[0].nodeValue;
descripcion.text = obj_xml.childNodes[0].childNodes[num].childNodes[1].childNodes[0].nodeValue;
precio.text = obj_xml.childNodes[0].childNodes[num].childNodes[2].childNodes[0].nodeValue;
imagen.text =obj_xml.childNodes[0].childNodes[num].childNodes[0].childNodes[0].nodeValue;
if(obj_xml.childNodes[0].childNodes[num+1]==null)
but1._x=-200;
else
but1._x=100;
if(num==0)
but._x=-200;
else
but._x=250;
}

but.onRelease = function()
{
num--;
cargar(num);
}

but1.onRelease = function()
{
num++;
cargar(num);
}

finalmente salva tu .fla en la misma carpeta donde tienes tu xml llamado "OFERTAS-WEB.xml" y el cual tiene el formato que me diste y que va a tener esto dentro:

<CONTENEDOR>

<AVPR>
<articulo>articulo1</articulo>
<descripcion>descripcion1</descripcion>
<precio>precio1</precio>
<imagen>imagen1</imagen>
</AVPR>
<AVPR>
<articulo>articulo2</articulo>
<descripcion>descripcion2</descripcion>
<precio>precio2</precio>
<imagen>imagen2</imagen>
</AVPR>
<AVPR>
<articulo>articulo3</articulo>
<descripcion>descripcion3</descripcion>
<precio>precio3</precio>
<imagen>imagen3</imagen>
</AVPR>
<AVPR>
<articulo>articulo4</articulo>
<descripcion>descripcion4</descripcion>
<precio>precio4</precio>
<imagen>imagen4</imagen>
</AVPR>

</CONTENEDOR>

ejecuta el swf, y mira si trabaja o no...

Por yeestrada1

26 de clabLevel



 

msie
Citar            
MensajeEscrito el 19 Mar 2009 05:15 pm
ya he visto el problema cual era la solucion es:

Código :

stop ();
var obj_xml:XML = new XML();
obj_xml.ignoreWhite = true;
but._x=-200;
but1._x=-200;
var num:Number=0;
obj_xml.onLoad = function(exito)
{
if (exito)
cargar(0);

}
obj_xml.load("OFERTAS-WEB.bus");
cargar =function(num:Number)
{
articulo.text = obj_xml.childNodes[0].childNodes[num].childNodes[0].childNodes[0].nodeValue;
descripcion.text = obj_xml.childNodes[0].childNodes[num].childNodes[1].childNodes[0].nodeValue;
precio.text = obj_xml.childNodes[0].childNodes[num].childNodes[2].childNodes[0].nodeValue;
imagen =obj_xml.childNodes[0].childNodes[num].childNodes[3].childNodes[0].nodeValue;
pantalla_mc.loadMovie(imagen);
if(obj_xml.childNodes[0].childNodes[num+1]==null)
but1._x=-200;
else
but1._x=100;
if(num==0)
but._x=-200;
else
but._x=250;
}

but.onRelease = function()
{
num--;
cargar(num);
}

but1.onRelease = function()
{
num++;
cargar(num);
}

Solucionado

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 06:35 pm
Hey que tal rubensfh. ando dandome una vuelta por cristalab, ¿ya resolviste el problema que me comentabas de los botones?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 19 Mar 2009 06:39 pm
si tio si ya esta resuelto ahora solo me queda hacer que la imagen se adapte al clip de pelicula si se pasa de las dimensiones y si no se pasa pues que se centre.
pero ese codigo intento que vaya dentro del clip de pelicula pero vamos cualquier solucion estaria bien.

Por rubensfh

38 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 Mar 2009 07:11 pm
Hola, prueba con:

Código ActionScript :

pantalla_mc.onLoad = function()
{
   this._width = Math.min( this._width, 200 );
   this._height = Math.min( this._height, 200 );
   this._x = (Stage.width - this._width) / 2;
   this._y = (Stage.height - this._height) / 2;
}

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 19 Mar 2009 08:49 pm
El codigo va juento a ese codigo que tienes:

Código ActionScript :

stop ();

pantalla_mc.onLoad = function() 
{ 
   trace("Centrando...")
   this._width = Math.min( this._width, 200 ); 
   this._height = Math.min( this._height, 200 ); 
   this._x = (Stage.width - this._width) / 2; 
   this._y = (Stage.height - this._height) / 2; 
} 

var obj_xml:XML = new XML();

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

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