Les ecribia para ver si me pueden dar una solucion al siguiente problema:
poseo un archivo XML que maneja varios CDATA, que funcionan perfectamente en su paso de informacion a flash, pero que cuando se manejan con la etiqueta HTML <font> adjunta del atributo face, para definir el tipo de letra que aparecera en el texto a cargar, no carga el texto en la pantalla, se han realizado varias pruebas con los CDATA como por ejemplo el uso de otros atributos dentro de la etiqueta <font> tales como size y color, tomando en cuenta solo el uso de esos 2 atributos y una vez hecha la modificacion y salvado el documento xml al ejecutar el swf se logra la carga con exito del texto con el tamaño y el color deseado.
El detalle o problema esta simplemete cuando adjunto el atributo face de la etiqueta <font>
anexo tanto el codigo del archivo As2 como el codigo XML
codigo As2:
Código ActionScript :
this.createEmptyMovieClip("slideMenu",this.getNextHighestDepth()); function loadXML(success) { if (success) { xmlNode = this.firstChild; photoX = []; photoY = []; textX = []; textY = []; textW = []; photo = []; description = []; total = xmlNode.childNodes.length; for (i=0; i<total; i++) { photoX[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue; photoY[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue; textX[i] = xmlNode.childNodes[i].childNodes[2].firstChild.nodeValue; textY[i] = xmlNode.childNodes[i].childNodes[3].firstChild.nodeValue; textW[i] = xmlNode.childNodes[i].childNodes[4].firstChild.nodeValue; photo[i] = xmlNode.childNodes[i].childNodes[5].firstChild.nodeValue; description[i] = xmlNode.childNodes[i].childNodes[6].firstChild.nodeValue; } delayTime = Number(this.firstChild.attributes.delayTime*1000); slideshowX = Number(this.firstChild.attributes.slideshowX); slideshowY = Number(this.firstChild.attributes.slideshowY); holder_mc._x = Number(slideshowX); holder_mc._y = Number(slideshowY); menuVisible = this.firstChild.attributes.menuVisible; if (menuVisible == "no" || menuVisible == "NO") { slideMenu._visible = false; } else { slideMenu._visible = true; } menuDirection = this.firstChild.attributes.menuDirection; menuX = Number(this.firstChild.attributes.menuX); menuY = Number(this.firstChild.attributes.menuY); menuSpacing = Number(this.firstChild.attributes.menuSpacing); slideMenu._x = menuX; slideMenu._y = menuY; menuOutEdge = this.firstChild.attributes.menuOutEdgeColor; menuOutBg = this.firstChild.attributes.menuOutBgColor; menuOverEdge = this.firstChild.attributes.menuOverEdgeColor; menuOverBg = this.firstChild.attributes.menuOverBgColor; initMenu(); initSlide(); } else { trace("Error cargando XML"); } delete xmlData; } xmlData = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = loadXML; xmlData.load("home.xml"); function clearListener() { clearInterval(timeInterval); } function initSlide() { if (n == undefined || n == total) { n = 0; } else { break; } clearInterval(timeInterval); menuColor(n); buildSlideshow(n); n++; } startX = 0; startY = 0; function initMenu() { for (i=0; i<total; i++) { slideMenu.attachMovie("menuBtn","a"+i,i); a = slideMenu["a"+i]; if (menuDirection == "y" || menuDirection == "Y") { a._y = startY; } else { a._x = startX; } startX += menuSpacing; startY += menuSpacing; a.num = i; a.onPress = function() { clearInterval(timeInterval); initSlide(n=this.num); }; a.onRollOver = function() { menuRollOver(this.num); }; a.onRollOut = function() { menuRollOut(); }; } } function buildSlideshow(i) { holder_mc._alpha = 0; holder_mc.photo_mc._x = photoX[i]; holder_mc.photo_mc._y = photoY[i]; holder_mc.description_txt._x = textX[i]; holder_mc.description_txt._y = textY[i]; holder_mc.description_txt._width = textW[i]; holder_mc.photo_mc.loadMovie(photo[i]); holder_mc.description_txt.autoSize = "left"; holder_mc.description_txt.htmlText = description[i]; this.onEnterFrame = function() { preloader_mc._visible = false; preloader_mc.preloader_txt.text = ""; bLoaded = holder_mc.photo_mc.getBytesLoaded(); bTotal = holder_mc.photo_mc.getBytesTotal(); if (bLoaded<bTotal) { holder_mc._alpha = 0; preloader_txt.text = Math.round((bLoaded/bTotal)*100); } else if (bLoaded>=bTotal && bLoaded>100 && bTotal>100) { if (holder_mc._alpha<100) { preloader_txt.text = ""; holder_mc._alpha = holder_mc._alpha+10; } if (holder_mc._alpha>=100) { timeInterval = setInterval(initSlide, delayTime); delete this.onEnterFrame; } } }; } function menuColor(n) { for (i=0; i<total; i++) { origEdge = new Color(slideMenu["a"+i].edge); origEdge.setRGB(menuOutEdge); origBg = new Color(slideMenu["a"+i].bg); origBg.setRGB(menuOutBg); currEdge = new Color(slideMenu["a"+n].edge); currEdge.setRGB(menuOverEdge); currBg = new Color(slideMenu["a"+n].bg); currBg.setRGB(menuOverBg); } }
Con el codigo como se ve en el contexto mencionado anteriormente, el texto enviado a traves del CDATA con una etiqueta <font face="arial"> no se carga en pantalla. por lo cual se hicieron modificaciones posteriores a ese codigo As2.0 para ajustarlo a la interpretacion de HTML que envia el CDATA de XML, pero aun habiendo modificado un par de lineas en el codigo para la recepcion e interpretacion del codigo HTML, solo se logro cargar en el area donde debia cargar el texto el valor undefined, aca se les deja las modificaciones que se hicieron postesterior al codigo de arriba mencionado.
Nota: las modificaciones se hicieron en las lineas 22 y 23 del codigo As2.0
Código ActionScript :
description[i].htmlText = xmlNode.childNodes[i].childNodes[6].firstChild.nodeValue; description[i].html = true;
Aca les dejo el codigo XML:
Código XML :
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <content delayTime = "10" slideshowX = "25" slideshowY = "25" menuVisible = "yes" menuDirection = "x" menuX = "25" menuY = "433" menuSpacing = "18" menuOutEdgeColor = "0x000000" menuOutBgColor = "0x333333" menuOverEdgeColor = "0x000000" menuOverBgColor = "0x999999"> <slideshow> <photoX>0</photoX> <photoY>0</photoY> <textX>660</textX> <textY>0</textY> <textWidth>200</textWidth> <photo>home_images/3.png</photo> <description> <![CDATA[<p align="justify"><font face="arial" size="12 e.m">Posee una infraestructura propia en constante ampliacion y adecuacion, distribuidas en areas de oficinas, que emplazan a cada uno de los departamentos, así como, talleres de fabricacion y almacenamiento de materiales.</font></p>]]> </description> </slideshow> <slideshow> <photoX>0</photoX> <photoY>20</photoY> <textX>0</textX> <textY>330</textY> <textWidth>850</textWidth> <photo>home_images/1.png</photo> <description> <![CDATA[SEDECAT, S.A.]]> </description> </slideshow> <slideshow> <photoX>0</photoX> <photoY>25</photoY> <textX>0</textX> <textY>5</textY> <textWidth>850</textWidth> <photo>home_images/2.png</photo> <description> <![CDATA[SEDECAT, S.A.]]> </description> </slideshow> <slideshow> <photoX>0</photoX> <photoY>0</photoY> <textX>660</textX> <textY>0</textY> <textWidth>200</textWidth> <photo>home_images/4.png</photo> <description> <![CDATA[SEDECAT, S.A.]]> </description> </slideshow> </content>
Atentamente
Diego Soules
Con anticipacion, muchas gracias
Espero su pronta respuesta !