Comunidad de diseño web y desarrollo en internet online

¿Cómo paso los datos de un arreglo a flash? ¿XML o Cadena?

Citar            
MensajeEscrito el 23 Mar 2009 08:41 pm
Hola, que tal. :D

engo una duda respectoa como hacer esa cuestión explico brevemente:
Estoy simuladno los datos que necesito recibir en un arreglo, del cual extraigo datos apra posicionar monitos en el escenario, a estos necesito definirle sus datos de X,Y, Nombre, y Puesto, sin embargo estoy en un dilema como los extraigo de la base (MySQL) y los paso a flash (con PHP).

Estuv revisando uno stutoriale s de hacerlo como cadena y después separarla sin embargo lo veo elaborado por los datos que tengo que separar. Pensaba en traerme los datos desde un xml pero no se si sea funcional.

Que me recomiendan??? Gracias de antemano

Escribo el código que uso para el posicionamiento.

Código :

function CreaColega() {
   //construimos el arreglo de objetos
   miArreglo = new Array();
   miArreglo = [{DeptoID:1, Nombre:"Erwin", x:179, y:320, col:"ROJO", Puesto:"PROGRAMADOR"}, {DeptoID:2, Nombre:"Fernando", x:130, y:126, col:"AZUL", Puesto:"DBA"}, {DeptoID:1, Nombre:"Maribel", x:110, y:317, col:"VERDE", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Karla", x:229, y:468, col:"VERDE", Puesto:"PUBLIC RELATIONS"}, {DeptoID:4, Nombre:"Yunuen", x:555, y:324, col:"NARANJA", Puesto:"ADVISER"}, {DeptoID:2, Nombre:"Edgar", x:450, y:326, col:"ROJO", Puesto:" DESIGN LEADER"}, {DeptoID:3, Nombre:"Joy", x:345, y:322, col:"AZUL", Puesto:"DEVELOPER"}, {DeptoID:2, Nombre:"Martin", x:120, y:480, col:"ROJO", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Ian", x:443, y:169, col:"VERDE", Puesto:"ANALYST"}, {DeptoID:4, Nombre:"Carmen", x:456, y:470, col:"AZUL", Puesto:"TESTER"}];
   for (var z = 0; z < miArreglo.length; z++) {
      var nuevoColega = "colega" + z;
      Colega_id = miArreglo[z].DeptoID;
      Colega_nom = miArreglo[z].Nombre;
      Colega_pues = miArreglo[z].Puesto;
      Colega_equis = miArreglo[z].x;
      Colega_ye = miArreglo[z].y;
      Colega_color = miArreglo[z].col;
      //duplicamos la instancia
      _root.colega.duplicateMovieClip(nuevoColega,z + 1);
      //posicionamos el colega
      this[nuevoColega]._x = Colega_equis;
      this[nuevoColega]._y = Colega_ye;
      //definimos su color
      this[nuevoColega].gotoAndStop(Colega_color);
      //definimos sus datos a mostrar
      this[nuevoColega].globo.gotoAndStop("detalle");
      this[nuevoColega].globo.dnombre.text = Colega_nom;
      this[nuevoColega].globo.dpuesto.text = Colega_pues;
      trace("crea instancia " + Colega_nom + " en x: " + Colega_equis + " y:" + Colega_ye);
      
//funciones para el control del drag   
   this[nuevoColega].onPress = function() {
      this.swapDepths(50);
      startDrag(this, true, 110, 150, 740, 520);
   };
   
   this[nuevoColega].onRelease = function() {
      this.swapDepths(50);
      this.stopDrag();
      //revisaEstatus(this);
   };
   
   this[nuevoColega].onReleaseOutside = function() {
      this.stopDrag();
      //revisaEstatus(this);
   };
   
   }
}

CreaColega();

Por jtull

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 23 Mar 2009 09:39 pm
Hola, bueno mira tu actualmente usas un array de objetos:

Código ActionScript :

miArreglo = [
{DeptoID:1, Nombre:"Erwin", x:179, y:320, col:"ROJO", Puesto:"PROGRAMADOR"}, 
{DeptoID:2, Nombre:"Fernando", x:130, y:126, col:"AZUL", Puesto:"DBA"}, 
{DeptoID:1, Nombre:"Maribel", x:110, y:317, col:"VERDE", Puesto:"SUPERVISOR"}, 
{DeptoID:3, Nombre:"Karla", x:229, y:468, col:"VERDE", Puesto:"PUBLIC RELATIONS"}... ETC


Lo mejor sera comunicar flash con el servidor mediante XML, es mucho mas funcional, la primer fase sera crear un XML y leerlo, luego que flash pueda leerlo, la segunda fase es que php lo genere. ¿Ya tienes un servidor php instalado?

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 23 Mar 2009 09:57 pm
Mira vas a crear un txt con el block de notas si quieres y le vas a poner esta informacion:

Código XML :

<?xml version="1.0" encoding="UTF-8"?>
<info>
   <item deptID=1>
      <nombre>Erwin</nombre>
      <puesto>Programador</puesto>      
      <color>rojo</color>
      <x>179</x>
      <y>320</y>
   </item>
   <item deptID=2>
      <nombre>Fernando</nombre>
      <puesto>DBA</puesto>      
      <color>azul</color>
      <x>130</x>
      <y>126</y>
   </item>
</info>


Ahora le das en guardar como y asegurate que la codificacion sea "UTF-8", el tipo de archivo debe ser "todos los archivos" y el nombre "info.xml", le das aceptar, luego copias el archivo a la carpeta donde esta el swf. Ya tienes la informacion en formato XML, ahora se tiene que hacer que flash la lea. Tu codigo de actionscript va a cambiar por este:

Código ActionScript :

var miArreglo = new Array();
var cargador_xml:XML = new XML();
cargador_xml.onLoad = function( ok:Boolean )
{
   if( ok )
   {
      CreaColega(  XmlToArr( this.firstChild ) );
   }
}
cargador_xml.load( "info.xml" );

function XmlToArr( aux:XMLNode ):Array
{
   //Aqui debes crear un array apartir del XML
   //return [];
   //Esta linea es la que tenias antes, en un futuro debera ser cambiada
   return [{DeptoID:1, Nombre:"Erwin", x:179, y:320, col:"ROJO", Puesto:"PROGRAMADOR"}, {DeptoID:2, Nombre:"Fernando", x:130, y:126, col:"AZUL", Puesto:"DBA"}, {DeptoID:1, Nombre:"Maribel", x:110, y:317, col:"VERDE", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Karla", x:229, y:468, col:"VERDE", Puesto:"PUBLIC RELATIONS"}, {DeptoID:4, Nombre:"Yunuen", x:555, y:324, col:"NARANJA", Puesto:"ADVISER"}, {DeptoID:2, Nombre:"Edgar", x:450, y:326, col:"ROJO", Puesto:" DESIGN LEADER"}, {DeptoID:3, Nombre:"Joy", x:345, y:322, col:"AZUL", Puesto:"DEVELOPER"}, {DeptoID:2, Nombre:"Martin", x:120, y:480, col:"ROJO", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Ian", x:443, y:169, col:"VERDE", Puesto:"ANALYST"}, {DeptoID:4, Nombre:"Carmen", x:456, y:470, col:"AZUL", Puesto:"TESTER"}];
}

function CreaColega( miArreglo:Array ) {
   //construimos el arreglo de objetos   
   for (var z = 0; z < miArreglo.length; z++) {
      var nuevoColega = "colega" + z;
      Colega_id = miArreglo[z].DeptoID;
      Colega_nom = miArreglo[z].Nombre;
      Colega_pues = miArreglo[z].Puesto;
      Colega_equis = miArreglo[z].x;
      Colega_ye = miArreglo[z].y;
      Colega_color = miArreglo[z].col;
      //duplicamos la instancia
      _root.colega.duplicateMovieClip(nuevoColega,z + 1);
      //posicionamos el colega
      this[nuevoColega]._x = Colega_equis;
      this[nuevoColega]._y = Colega_ye;
      //definimos su color
      this[nuevoColega].gotoAndStop(Colega_color);
      //definimos sus datos a mostrar
      this[nuevoColega].globo.gotoAndStop("detalle");
      this[nuevoColega].globo.dnombre.text = Colega_nom;
      this[nuevoColega].globo.dpuesto.text = Colega_pues;
      trace("crea instancia " + Colega_nom + " en x: " + Colega_equis + " y:" + Colega_ye);
      
//funciones para el control del drag   
   this[nuevoColega].onPress = function() {
      this.swapDepths(50);
      startDrag(this, true, 110, 150, 740, 520);
   };
   
   this[nuevoColega].onRelease = function() {
      this.swapDepths(50);
      this.stopDrag();
      //revisaEstatus(this);
   };
   
   this[nuevoColega].onReleaseOutside = function() {
      this.stopDrag();
      //revisaEstatus(this);
   };
   
   }
}


Entiendes como va, ahora faltaria implementar la funcion XmlToArr, pero dime si ya vas en esa parte para que te explique lo que sigue.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 24 Mar 2009 01:19 am
Muchas gracias LongeVie no me esperaba una respuesta tan pronta, fijate que ya implementé el XML con los datos, aunque de momento seguí tu ejemplo pasandole el return con todos los datos, pero si me ayudas a poder hacer el parsing del xml me serviría muchisimo.

Desde hace algunos años uso flash, sin embargo duré otros más sin usarlo y me siento oxidado realmente, y tengo que darle salida a esta cuestión.

Si me ayudas a implementarlo para darme la idea sería geníal.

Muchas gracias.

Por jtull

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 24 Mar 2009 01:56 am
ok, ahora lo que vamos a hacer es implementar la función XmlToArr

Código ActionScript :

function XmlToArr( aux:XMLNode ):Array 
{ 
   var arr:Array = new Array();
   //<item deptID=> 
   var id:Number;
   //  <nombre>
   var nombre:String;
   //  <puesto>
   var puesto:String;
   //  <color>
   var color:String;
   //  <x>
   var ex:Number;
   //  <y>
   var ye:Number;
   for( var i:Number = 0; i < aux.childNodes.legth; i++ )
   {//parseardo y typing
      id = Number( aux.childNodes[i].attributes.deptID );
      nombre = String( aux.childNodes[i].childNodes[0].firstChild.nodeValue );
      puesto = String( aux.childNodes[i].childNodes[1].firstChild.nodeValue );
      color = String( aux.childNodes[i].childNodes[2].firstChild.nodeValue );
      ex = Number( aux.childNodes[i].childNodes[3].firstChild.nodeValue );
      ye = Number( aux.childNodes[i].childNodes[4].firstChild.nodeValue );      
      arr[i] = {DeptoID:id, Nombre:nombre, x:ex, y:ye, col:color, Puesto:puesto};
   }
   return arr; 
   //Esta linea es la que tenias antes, en un futuro debera ser cambiada 
   //return [{DeptoID:1, Nombre:"Erwin", x:179, y:320, col:"ROJO", Puesto:"PROGRAMADOR"}, {DeptoID:2, Nombre:"Fernando", x:130, y:126, col:"AZUL", Puesto:"DBA"}, {DeptoID:1, Nombre:"Maribel", x:110, y:317, col:"VERDE", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Karla", x:229, y:468, col:"VERDE", Puesto:"PUBLIC RELATIONS"}, {DeptoID:4, Nombre:"Yunuen", x:555, y:324, col:"NARANJA", Puesto:"ADVISER"}, {DeptoID:2, Nombre:"Edgar", x:450, y:326, col:"ROJO", Puesto:" DESIGN LEADER"}, {DeptoID:3, Nombre:"Joy", x:345, y:322, col:"AZUL", Puesto:"DEVELOPER"}, {DeptoID:2, Nombre:"Martin", x:120, y:480, col:"ROJO", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Ian", x:443, y:169, col:"VERDE", Puesto:"ANALYST"}, {DeptoID:4, Nombre:"Carmen", x:456, y:470, col:"AZUL", Puesto:"TESTER"}]; 
} 


ASi ya lo parsea, lo convierte a un array como el que tenias y con eso debe funionar la primer fase.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 24 Mar 2009 06:21 pm
Hola, ya integré esa función en mi código pero tengo un problema, ya que no le pasa el xml a la función que mete los datos (xml) a la que arma el arreglo. Puse unos trace y en los que debe lelgarle el dato no pasa nada. ¿Que estoy haciendo mal?

Use el arreglo explicito para porbar la función (el que está comentado como lo pusiste) y funciona todo bien, osea el detalle es cuando le paso el xml para que lo arme.

Código :

var miArreglo = new Array();
var cargador_xml:XML = new XML();
cargador_xml.onLoad = function(ok:Boolean) {
   if (ok) {
      trace("encontro xml y le pasa"+this.firstChild);
      CreaColega(XmlToArr(this.firstChild));
   }else{
      trace("no cargo el xml");
      }
};
cargador_xml.load("info.xml");

function XmlToArr(aux:XMLNode):Array {
   trace("llega al array de xml y trae "+aux);
   //Aqui debes crear un array apartir del XML
   var arr:Array = new Array();
   var id:Number;//<item deptID=> 
   var nombre:String;//  <nombre>
   var puesto:String;//  <puesto>
   var color:String;//  <color>
   var ex:Number;//  <x>
   var ye:Number;//  <y>
   for (var i:Number = 0; i < aux.childNodes.length; i++) {
      //parseardo y typing
      trace("circula el array");
      id = Number(aux.childNodes[i].attributes.deptID);
      trace("es " + id);
      nombre = String(aux.childNodes[i].childNodes[0].firstChild.nodeValue);
      puesto = String(aux.childNodes[i].childNodes[1].firstChild.nodeValue);
      color = String(aux.childNodes[i].childNodes[2].firstChild.nodeValue);
      ex = Number(aux.childNodes[i].childNodes[3].firstChild.nodeValue);
      ye = Number(aux.childNodes[i].childNodes[4].firstChild.nodeValue);
      arr[i] = {DeptoID:id, Nombre:nombre, x:ex, y:ye, col:color, Puesto:puesto};
   }
   return arr;

   //Esta linea es la que tenias antes, en un futuro debera ser cambiada 
   //return [{DeptoID:1, Nombre:"Erwin", x:179, y:320, col:"ROJO", Puesto:"PROGRAMADOR"}, {DeptoID:2, Nombre:"Fernando", x:130, y:126, col:"AZUL", Puesto:"DBA"}, {DeptoID:1, Nombre:"Maribel", x:110, y:317, col:"VERDE", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Karla", x:229, y:468, col:"VERDE", Puesto:"PUBLIC RELATIONS"}, {DeptoID:4, Nombre:"Yunuen", x:555, y:324, col:"NARANJA", Puesto:"ADVISER"}, {DeptoID:2, Nombre:"Edgar", x:450, y:326, col:"ROJO", Puesto:" DESIGN LEADER"}, {DeptoID:3, Nombre:"Joy", x:345, y:322, col:"AZUL", Puesto:"DEVELOPER"}, {DeptoID:2, Nombre:"Martin", x:120, y:480, col:"ROJO", Puesto:"SUPERVISOR"}, {DeptoID:3, Nombre:"Ian", x:443, y:169, col:"VERDE", Puesto:"ANALYST"}, {DeptoID:4, Nombre:"Carmen", x:456, y:470, col:"AZUL", Puesto:"TESTER"}]; 
}

Por jtull

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 24 Mar 2009 06:47 pm
Hola, falto agregarle la politica "ignoreWhite" que hace que el xml pueda estar espaciado en el archivo

Código ActionScript :

var cargador_xml:XML = new XML();
cargador_xml.ignoreWhite = true;


Luego el xml esta mal formado, :P los atributos son con comillas:

Código XML :

<item deptID="1">


Con eso ya debe funcionar

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox
Citar            
MensajeEscrito el 06 Abr 2009 05:09 pm
:D

Hola que tal! De nueva cuenta aqui pidiendo su apoyo, sigo con el mismo proyecto ya casi lo tengo terminado, me ayudaron mucho los comentarios que me hicieron ya ví mis errores y los corregí. Sin aembargo tengo otra pregunta espero me puedan orientar para ver la mejor forma de poder hacerlo.

Dentro del código situo mis elementos(monitos) en el escenario, les cargo de datos que traigo de su xml, inclusive sus datos de posición X,Y. A lo cual tengo la posibilidad de arrastrar cada elemento y situarlo en otra parte del escenario. yo necesito saber en que lugar del escenario lo dejé y poder grabar esos datos X,Y para hacer un envio de esa info a la base de datos.

Pueden ser varios elementos (monitos) que puedo mover y de todos necesito saber donde se quedan situados. Ojala me pueda orientar para solucionar esto, no se si se mejor hacerlo cada vez que cambie de lugar cada monito o al final que se hayan movido todos hacer uan función que lea la ubicación de todos.

les anexo el código que muestra los elementos en el escenario.

Gracias de antemano

Código :

//funcion que envia clave de colega para generar su registro
var miclaveDepto = new LoadVars();
function cargaDepto(dep) {
   trace("-> CARGA DEPTO " + dep);
   miclaveDepto.deptoid1 = _root.claveDepto;
   _root.depgral = dep;
   _root.ocurre.text = _root.depgral;
   trace("/////////////ESCRIBIENDO XML////////////////");
   //miclaveDepto.send("grArDepto.php",miclaveDepto,"POST");
   miclaveDepto.sendAndLoad("grArDepto.php",miclaveDepto,"POST");
   var col = miclaveDepto.clave;
   //miclaveDepto.onLoad = RespDepto(_root.claveDepto);
   miclaveDepto.onLoad = function() {
   _root.gotoAndPlay("depto");
   };
}

//funcion que recibe la orden de cargar el xml con la bitacora de cada colega
function RespDepto(depto) {
   trace("carga depto " + depto);
   mensaje.text = "carga depto";
   depto_xml.load("deptos/depto_" + depto + ".xml");
}
/////////////////CARGA XML DE COLEGAS X DEPTO//////////////////////////
var miColegaDepto = new Array();
var depto_xml:XML = new XML();
depto_xml.ignoreWhite = true;
depto_xml.onLoad = function(ok:Boolean) {
   if (ok) {
      ColegaDepto(DepXmlToArrDep(this.firstChild));
   } else {
      trace("no cargo el xml");
   }
};
///FUNCION PARA CREAR LA BITACORA DE DATOS A PARTIR DE XML///
function DepXmlToArrDep(datosDEP:XMLNode):Array {
   trace("-> DEPTOS1 - XML ");
   var arrdep:Array = new Array();
   var id:Number;//<item deptID=> 
   var colega:String;//  <colega>
   var nombre:String;//  <nombre>
   var puesto:String;//  <puesto>
   var comentarios:String;//<comentarios>
   var color:String;//  <color>
   var ex:Number;//  <x>
   var ye:Number;//  <y>
   var fechacambio:String;//  <fechacambio>
   var UltimaAct:String;//  <UltimaAct>
   var RetID:String;//  <retid>
   var MovID:String;//  <movid>
   var ReadlineID:String;//  <readlineid>
   var DesempenoID:String;//  <desempenoid>
   for (var i:Number = 0; i < datosDEP.childNodes.length; i++) {
      //parseardo y typing
      id = Number(datosDEP.childNodes[i].attributes.deptID);
      colega = String(datosDEP.childNodes[i].childNodes[0].firstChild.nodeValue);
      nombre = String(datosDEP.childNodes[i].childNodes[1].firstChild.nodeValue);
      puesto = String(datosDEP.childNodes[i].childNodes[2].firstChild.nodeValue);
      comentarios = String(datosDEP.childNodes[i].childNodes[3].firstChild.nodeValue);
      color = String(datosDEP.childNodes[i].childNodes[4].firstChild.nodeValue);
      ex = Number(datosDEP.childNodes[i].childNodes[5].firstChild.nodeValue);
      ye = Number(datosDEP.childNodes[i].childNodes[6].firstChild.nodeValue);
      fechacambio = String(datosDEP.childNodes[i].childNodes[7].firstChild.nodeValue);
      ultimaact = String(datosDEP.childNodes[i].childNodes[8].firstChild.nodeValue);
      retid = String(datosDEP.childNodes[i].childNodes[9].firstChild.nodeValue);
      movid = String(datosDEP.childNodes[i].childNodes[10].firstChild.nodeValue);
      readlineid = String(datosDEP.childNodes[i].childNodes[11].firstChild.nodeValue);
      desempenoid = String(datosDEP.childNodes[i].childNodes[12].firstChild.nodeValue);
      arrdep[i] = {DeptoID:id, Colega:colega, Nombre:nombre, Puesto:puesto, Comentarios:comentarios, col:color, x:ex, y:ye, FechaCambio:fechacambio, UltimaAct:ultimaact, RetID:retid, MovID:movid, ReadlineID:readlineid, DesempenoID:desempenoid};
   }
   return arrdep;
}
/////////////////////////////////////////////////////////////////////////////////////////////////
///FUNCION QUE CREA LA INSTANCIA DE LA BITACORA DEL COLEGA EN EL ESCENARIO
function ColegaDepto(miColegaDepto:Array) {
   trace("-> COLEGAS depto");
   for (var j = 0; j < miColegaDepto.length; j++) {
      var ColegaDeptox = "ColDep" + j;
      Depto = miColegaDepto[j].DeptoID;
      Colega_id = miColegaDepto[j].Colega;
      Colega_nom = miColegaDepto[j].Nombre;
      Colega_pues = miColegaDepto[j].Puesto;
      Colega_color = miColegaDepto[j].col;
      Colega_comen = miColegaDepto[j].Comentarios;
      Colega_equis = miColegaDepto[j].x;
      Colega_ye = miColegaDepto[j].y;
      Colega_fecha = miColegaDepto[j].FechaCambio;
      Colega_ultima = miColegaDepto[j].UltimaAct;
      Colega_ret = miColegaDepto[j].RetID;
      Colega_mov = miColegaDepto[j].MovID;
      Colega_read = miColegaDepto[j].ReadlineID;
      Colega_desem = miColegaDepto[j].DesempenoID;

      //duplicamos       
      _root.ColDep.duplicateMovieClip(ColegaDeptox,j + 1);
      //posicionamos el colega       
      this[ColegaDeptox]._x = Colega_equis;
      this[ColegaDeptox]._y = Colega_ye;
      //definimos su color       
      this[ColegaDeptox].gotoAndStop(Colega_color);
      //definimos sus datos a mostrar       
      this[ColegaDeptox].globo.gotoAndStop("detalle");
      this[ColegaDeptox].globo.clave = Colega_id.toString();
      this[ColegaDeptox].globo.dnombre.text = Colega_nom;
      this[ColegaDeptox].globo.dpuesto.text = Colega_pues;
      trace("-------------------------");
      trace("clave " + Colega_id + " crea instancia " + Colega_nom + " en x: " + Colega_equis + " y:" + Colega_ye);
//-----------------------------------------------------------------------------------------------------------------------------
//AQUI USO ESTAS FUNCIONES PERO SOLO SIRVEN PARA EL ULTIMO ELEMENTO DEL ARREGLO
      //funciones para el control del drag 
      this[ColegaDeptox].onMouseMove = function() {
         updateAfterEvent();
         equis.text = this._x;
         ye.text = this._y;
      };
      this[ColegaDeptox].onPress = function() {
         this.swapDepths(50);
         startDrag(this, true, 110, 150, 740, 520);
      };
      this[ColegaDeptox].onRelease = function() {
         this.swapDepths(50);
         this.stopDrag();
      };
      this[ColegaDeptox].onReleaseOutside = function() {
         this.stopDrag();
      };
   }
}

Por jtull

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Abr 2009 02:03 am
Hola, podrias usar un for para recorrer lo MovieClips y entonces guardas sus posiciones enviando sus datos via LoadVars al servidor, con php sobreescribes el XML.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

msie7
Citar            
MensajeEscrito el 20 Abr 2009 02:43 pm
Hola, gracias pro la recomendación, ya la hize y si consigo enviar los datos de flash a php, pero tengo unas preguntas al respecto.

Como son varios datos los que envio los metí en un ciclo para enviar uno 1 x 1 a php, y usando el loadVars:send() llegan así a php, sin embargo necesito usar el senAndLoad para que no me abra ninguna ventana en el proceso, lo cual no consigo que funcione, ya que el método espera una respuesta y la respuesta siempre se repite dependiendo de la cantidad de envios que haga.

Adjunto el código de ambas cosas, si me apoyan a saber cual es la mejor manera de resolverlo me ayudarían como lo han hecho hasta ahora. Saludos!!

Código de flash

Código :

function RecorreInstancias() {
   var NuevaPosColega = new LoadVars();
   //var ciclos:Number = 15;
   var ciclos:Number = _global.numTotEmp;
   trace(ciclos+" ciclos");
   for (var z = 0; z<ciclos; z++) {
      var miemp = eval("_root.emp"+z);
      var miempX = eval("_root.emp"+z)._x;
      var miempY = eval("_root.emp"+z)._y;
      trace(" existe:: "+miemp+" en "+miempX+" y "+miempY);
      //var micorte = String(miemp);
      //var misubcorte = micorte.substr(8,5);
      //trace("recorte "+misubcorte);
      /////////////////////////////////////////////////////////////////////////////
      trace("clave colega es: "+miemp);
      NuevaPosColega.ColegaID = miemp;
      NuevaPosColega.xe = miempX;
      NuevaPosColega.ye = miempY;
      //NuevaPosColega.send("RegistraCambioColega.php",NuevaPosColega,"POST");
      NuevaPosColega.sendAndLoad("RegistraCambioColega.php",NuevaPosColega,"POST");
      NuevaPosColega.onLoad = RespCambioColega;
   }
   trace("ROMPE EL CICLO");
   break;
}


Código de php:

Código :

//incluimos el archivo de funciones
include("funciones.php");

// Variable que esperamos recibir
$Colega = trim($_POST["ColegaID"]);
$Colega = substr($Colega,8,5);
/*$Colega[] = trim($_POST["ColegaID"]);
for ($index =0; $index < count ($Colega); $index++){
echo ($Colega[$index]). "<br>\n";
}*/
//exit;

//$Puesto =strtoupper(trim($_POST["Puesto"]));
$Depto = trim($_POST["Depto"]);
$Equis = trim($_POST["xe"]);
$Ye = trim($_POST["ye"]);
$Fecha = date("Y.m.d:h.m.s");  
/////////////////////////////////////////////////////////////

echo "usuario) " . $Colega . "<br>";
//echo "b-1)" . $Depto . "<br>";
echo "x) " . $Equis  . "<br>";
echo "y) " . $Ye  . "<br>";   
echo "fecha) " . $Fecha  . "<br>";
exit("FIN");

Por jtull

3 de clabLevel



 

msie7
Citar            
MensajeEscrito el 20 Abr 2009 08:52 pm
hola, primero que nada, no uses global, luego, no uses eval de ese modo, procura no usar _root tampoco.

Esto: eval("_root.emp"+z)._y; es igual a esto: _root["emp" + z]._y

Y tercero, no envies con un ciclo, ya que los envios crean varias instancias de la pagina php en el servidor y en el peor de los casos podrias colapsarlo. tienes que enviar todo en un solo envio, si la estructura es mas organizada, podrias enviar mediante un objeto XML, u ordenar tus variables en el LoadVars:

Código ActionScript :

      NuevaPosColega["ColegaID"+i] = miemp;
      NuevaPosColega["xe"+i] = miempX;
      NuevaPosColega["ye"+i] = miempY;

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.