Comunidad de diseño web y desarrollo en internet online

Como manipular una variable de Action Script a Xml

Citar            
MensajeEscrito el 18 Nov 2009 04:52 pm
Hola, tengo una aplicacion en flash... dentro del script tengo una variable que me agrupa una serie de atributos... y funciona muy bien asi:

Código XML :

var config = "<config maxtotal=\"100\" min_max=\"1:0.1-100,2:0.1-100,3:0.1-100,4:0.1-100,6:0.1-100,12:0.1-100,18:0.1-100\" emptybet=\"0\"> <nodo balance=\"200\" low_limit=\"0\" alert=\"0\" /> <chips range=\"0.1:0.5:1:2:5\" def=\"3\"/> </config>";


Pero quiero manipular estos atributos desde un XML externo, lo cual no me ha funcionado, lo que hice fue lo siguiente, :

Código XML :

<?xml version="1.0" encoding="utf-8"?>
//MiXmi.xml
<config maxtotal="200" min_max="1:0.1-100,2:0.1-100,3:0.1-100,4:0.1-100,6:0.1-100,12:0.1-100,18:0.1-100" emptybet="0">
  <nodo balance="2000" low_limit="0" alert="0"/>
  <chips range="0.1:0.5:1:5:25" def="3"/>
</config>


y lo invoco desde el flash asi:

Código ActionScript :

var config:XML = new XML();
      config.ignoreWhite = true;
      config.onLoad = function() {
         trace(this);
      };
       config.load("MiXml.xml")


Recibo sugerencias!!! gracias....

Por dionissio

10 de clabLevel



 

msie8
Citar            
MensajeEscrito el 19 Nov 2009 01:52 pm
La variables que muestras es un string tal como está declarada ... carga entonces un string, no un XML

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 Nov 2009 03:31 pm
Hola Jorge te agradezco... no entendi bien!!! el tema es que necesito importar los datos desde un archivo externo...

Podrias explicarme como debo hacerlo!!!

Gracias

Por dionissio

10 de clabLevel



 

msie8
Citar            
MensajeEscrito el 23 Nov 2009 03:47 pm
No importa. Ya estás cargan de un archivo externo, pero debes parsear el XML poder usarlo ... ¿ no te viene eso en el archivo que estás copiando?

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 Nov 2009 03:54 pm
Te explico, la primera parte la tengo dentro del flash... ahi funciona muy bien... pero con lo que trato de hacer con el XML no funciona... disculpa mi ignorancia!! y gracias por responder

Por dionissio

10 de clabLevel



 

msie8
Citar            
MensajeEscrito el 23 Nov 2009 04:01 pm
Ok, ya veo, haré preguntas mas simples
Un XML no se puede usar tal no se puede usar tal cual, hay que interpretar su información, algo que se suele denominar parseo. Tu citas un XML y por eso quieres usarlo, pero debes tener por ahí una rutina para poder interpretarlo, búscala. Si no la tienes es mas fácil usar un TXT que un XML

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 30 Nov 2009 02:05 pm
Lo intente con un archivo de texto... y me funciona con un solo dato... lo otro es que mi action script es 1.0.

La variable config la utilizo a lo largo del programa por eso es importante llevar los datos alli como lo hago con la siguiente instruccion:

var config = "<config maxtotal=\"100\" min_max=\"1:0.1-100,2:0.1-100,3:0.1-100,4:0.1-100,6:0.1-100,12:0.1-100,18:0.1-100\" emptybet=\"0\"> <nodo balance=\"200\" low_limit=\"0\" alert=\"0\" /> <chips range=\"0.1:0.5:1:2:5\" def=\"3\"/> </config>";

Por dionissio

10 de clabLevel



 

msie8
Citar            
MensajeEscrito el 30 Nov 2009 02:10 pm
comprendi que hay que recorrre los nodos... encontre un ejemplo que me funciona muy bien,
Etiquetas: XML URLLoader URLRequest elements

El siguiente código carga un XML y recorre sus nodos y atributos imprimiendolos en pantalla.

El XML que he utilizado es el siguiente:


<Discos>
<Disco puntuacion="10">
<grupo id="20">The Knife</grupo>
<titulo>Deep Cuts</titulo>
</Disco>
<Disco puntuacion="7">
<grupo id="21">Jose Gonzalez</grupo>
<titulo>Veneer</titulo>
</Disco>
</Discos>


Y el código AS:


//Importo las clases necesarias
import flash.display.*;
import flash.events.*;
import flash.net.*;


//Asigno la url que se va a cargar
var url:String = "discos.xml";
var XmlExterno:XML;

//Carga el XML
function CargarXML() {
//Creo el objeto cargador
var loader:URLLoader = new URLLoader();
//Le añado los listeners
ponerListeners(loader);
//Creo el objeto que contendrá la petición
var peticion:URLRequest = new URLRequest(url);
//Cargo la petición
loader.load(peticion);
}

//Añade los listeners al cargador
function ponerListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
}

//Funcion que se ejecuta cuando termina la descarga.
function completeHandler(event:Event):void {

var cargador:URLLoader = event.target as URLLoader;
XmlExterno = new XML(cargador.data);
for each(var nodo:XML in XmlExterno.elements()){
//Devuelve el atributo puntuacion
trace(nodo.@puntuacion);
//Devuelve el contenido del nodo <grupo>
trace(nodo.grupo);
//Devuelve el valor del atributo id dentro del nodo <grupo>
trace(nodo.grupo.@id);
//Devuelve el contenido del nodo titulo
trace(nodo.titulo);
}

}

//Empezamos
CargarXML();


Pero no se como lo hago con AS 1.0

Por dionissio

10 de clabLevel



 

msie8
Citar            
MensajeEscrito el 30 Nov 2009 02:15 pm
Sorry, trabajo desde hace un año con AS3, me acuerdo de AS2 pero ya ir a AS1 sería retroceder muchos años ... seguramente algún otro se acuerde de aquello :)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 15 Dic 2009 02:58 pm
Hola nuevamente.... ya he resuelto parte de mi poblema.... agradezco...

Pero ahora tengo lo siguiente... es algo sencillo pero no me anda...

Tengo un xml llamado saldo.xml:

<XConfig>
<Datos Saldo="150" />
</XConfig>
y tengo que llevar el valor del atributo a una variable que usare en flash...

He hecho lo siguiete en flash:
var MyXML=new XML();
MyXML.ignoreWhite=true;
MyXML.onload=cargaXML;
MyXML.load("saldo.xml");

function cargaXML(){
var saldo=this.firstChild.childNodes[0].attributes.Saldo;
trace(saldo);
estado="cargado";
trace(estado);
}
funciona creo... porque el trace me presenta el valor que tengo... el problema viene con la linea siguiente:
var misaldo= saldo;
trace (saldo);
me dice indefinido... y no me lleva el valor a la variable misaldo....

ok.. les agradezco la ayudita!!! soy primiparo en este tema!!!

Por dionissio

10 de clabLevel



 

safari
Citar            
MensajeEscrito el 15 Dic 2009 07:08 pm
si pones la variable fuera de la función no dejas que cargue el XML por tanto la otra variable "saldo" no tiene ningun valor y tampoco esta definida

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 18 Dic 2009 01:33 pm
Gracias... lo que he entendido es que una variable pierde valor fuera de la funcion... ahora mi pregunta es como hago para llevar ese valor fuera de la funcion que la alimento inicialmente.

Lo que necesito, haber si me entieneden es capturar el valor del atributo.. y llevarlo a una variable que utilizo en la aplicacion, pero fuera de la funcion de carga..

Por dionissio

10 de clabLevel



 

msie8
Citar            
MensajeEscrito el 18 Dic 2009 01:43 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Dic 2009 01:46 pm
Me extraña que hasta ahora no hayan podido ayudarme con este tema, al parecer muy simple... yo explico lo que he encontrado... las variables como en todos los lenguajes de programacion manejan un ambito(locales y globales) cuando una variable devuelve un undefined es por que le hemos definido mal, o la estamos invocando mal...

En este foro hay un link al respecto.... chiscos mas colaboracion por favor!!!!!!!!

http://www.cristalab.com/tips/ambito-de-variables-en-actionscript-scope-this-c28962l/

Por dionissio

10 de clabLevel



 

msie8
Citar            
MensajeEscrito el 18 Dic 2009 01:51 pm
Ok dionissio, veo que te viene mal estudiar, y que solo quieres que te solucionen tu problema.
Usa un approach primiparo, ante la duda le metes _global.loquesea , y _global.loquesea estará disponible en cualquier ámbito (por eso fue quitado en AS3, porque es una ruptura flagrante de la encapsulación)
Stay cool

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 18 Dic 2009 03:04 pm
pon (var misaldo = saldo;) dentro de la función.

Como te decia, si lo pones fuera, no esta definida la variable saldo (fijate en donde la generas) y claro que la puedes usar en otras funciones, solo declarala antes de crear el objeto XML (hasta arriba) y después dentro de la función le asignas su valor.

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox

 

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