mi problma es que en su sitio hay mucho texto , y pues yo creo que es mas conveniente utilisar un archivo externo para cargar el texto dinamicamente, pues si me pongo a meter todo el texto en flash voy a perder mucho tiempo;
Veamos yo decidi crear un archivo xml :
<?xml version="2.0" encoding="iso-8859-1"?>
<servicios>
<item titleID="0" numerodelineas="0">
<linea>el texto de esta linea></linea>
</item>
<item titleID="1" numerodelineas="6">
<linea>el texto de esta linea></linea>
</item>
<item titleID="2" numerodelineas="4">
<linea>el texto de esta linea></linea>
</item>
</servicios>
<servicios>
<item titleID="0" numerodelineas="0">
<linea>el texto de esta linea></linea>
</item>
<item titleID="1" numerodelineas="6">
<linea>el texto de esta linea></linea>
</item>
<item titleID="2" numerodelineas="4">
<linea>el texto de esta linea></linea>
</item>
</servicios>
osea que para cada tag puedo saber cuuantas lineas hay y cada tag tiene un identificador;
despues en actions script me cree una classe que recibe como parametro un objeto XML
y lo convierte en un ARRAY
el codigo es el siguiente :
Código :
dynamic class componentes.helpers.solintecXml.XmlObj {
private var objectgeneral:Array;
private var xmlData:XML;
// Constructor
public function XmlObj(_xmlData:XML) {
objectgeneral = new Array();
xmlData = _xmlData;
ceateDataObject(xmlData);
}
//agregar una linea al objeto objectgeneral
public function addTag(_t:Array) {
objectgeneral.push(_t);
trace("addtag\n");
trace("/////////////////////");
trace(_t.lineas);
trace("/////////////////////");
}
//retorna una linea segun el tag ID
public function getTag(_tid:Number):Array {
var tempreturn:Array;
for (var i = 0; i<objectgeneral.length; i++) {
trace(objectgeneral[i].titleID);
if (objectgeneral[i].titleID == _tid) {
tempreturn = objectgeneral[i];
trace(_tid+" ; le tag demande est le numero : "+i);
trace("on renvoie "+objectgeneral[i].numerodelineas+" lineas");
trace("la primera linea da commo resultad :\n"+objectgeneral[i].lineas[0]);
}
}
return tempreturn;
}
//creacion del objecto general
function ceateDataObject(_xml:XML) {
var numberOfTags = _xml.firstChild.childNodes.length+1;
trace("creation de l'object xml avec "+numberOfTags+" balises item");
trace(_xml.firstChild.attributes.titleID);
for (var i = 0; i<=numberOfTags; i++) {
var tempTagsLineas = _xml.firstChild.childNodes[i].nextSibling.childNodes.length;
var templineasArray:Array = new Array();
for (var j = 0; j<tempTagsLineas; j++) {
templineasArray[j] = _xml.firstChild.childNodes[i].nextSibling.childNodes[j].attributes.texto;
}
var tmpArray = {titleID:_xml.firstChild.childNodes[i].attributes.titleID, numerodelineas:_xml.firstChild.childNodes[i].attributes.numerodelineas, lineas:templineasArray};
addTag(tmpArray);
}
}
}a ver hay mas ; despues he creado un datagrid,de una sola linea;
para entrar los datos a este datadrid lo hago de esta manera :
Código :
miDatagrid.setData(elObjectoXml.getTag(n*).lineas);
*n el identificante del tag ;
mi problema es que en la classe XmlObj el primer tag y el ultimo tag de mi archivo XML no son tomados en cuenta;
por ejemplo si quiero utilisar el tag que tiene el ID=1 o 2 o 3 no hay problema ;
pero si quiero utilisar el tag que tiene ID= 0
m es imposible de obtener los datos correspondientes, a igual que cuando quiero utilisar el ultimo tag del archivo xml;
si alguien puede ayudarme le sere muy agradicido
