asique el fabricantes.xml es algo así:
Código :
<?xml version="1.0" encoding="UTF-8"?> <fabricantes> <fabricante label="Escoja un Fabricante"> <producto name="Escoja un Fabricante"> <img></img> <imgp></imgp> <pdf></pdf> </producto> </fabricante> <fabricante label="Plantronics"> <producto name="Escoja un Producto"> <img></img> <imgp></imgp> <pdf></pdf> </producto> <producto name="A100"> <img>Datos/plantronics/a100.jpg</img> <imgb>Datos/plantronics/a100b.jpg</imgb> <imgp>Datos/plantronics/a100p.jpg</imgp> <pdf>Datos/plantronics/a100.pdf</pdf> </producto> </fabricante> <fabricante label="Panasonic"> <producto name="Escoja un Producto"> <img></img> <imgp></imgp> <pdf></pdf> </producto> <producto name="KX-TG7100"> <img>Datos/panasonic/kxtg7100.jpg</img> <imgb>Datos/panasonic/kxtg7100b.jpg</imgb> <imgp>Datos/panasonic/kxtg7100p.jpg</imgp> <pdf>Datos/panasonic/kxtg7100.pdf</pdf> </producto> </fabricante> </fabricantes>
Y el código en Flex es:
Código :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:XML id="fabricantes" source="Datos/fabricantes.xml" format="e4x" xmlns="" />
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public function ira(urlair:String):void {
if(urlair != ""){
var u:URLRequest = new URLRequest(urlair);
navigateToURL(u,"_blank");
} else {
if(combo_fabricante.text == "Escoja un Fabricante"){
Alert.show('Debe elegir un Fabricante primero.');
} else if(combo_producto.text == "Escoja un Producto"){
Alert.show('Debe elegir un Producto primero');
} else {
Alert.show('El archivo no esta disponible en este momento, pongase en contacto con el administrador');
}
}
}
]]>
</mx:Script>
<mx:Number id="fabricanteseleccionado">{ combo_fabricante.selectedIndex }</mx:Number>
<mx:Number id="productosel">{ combo_producto.selectedIndex }</mx:Number>
<mx:Panel width="455" height="355" layout="absolute" id="main" title="SCT Telecom - Base de Datos de Productos" horizontalAlign="center" verticalAlign="middle" horizontalCenter="0" verticalCenter="0">
<mx:ComboBox change="{ combo_producto.dataProvider = fabricantes..fabricante[fabricanteseleccionado]..producto.@name }" x="265" y="10" id="combo_fabricante" dataProvider="{ fabricantes..fabricante.@label }"></mx:ComboBox>
<mx:Label x="139" y="12" text="Escoja un Fabricante"/>
<mx:Label x="148" y="46" text="Escoja un Producto"/>
<mx:ComboBox id="combo_producto" x="265" y="44" change="{ imgp.source = fabricantes..fabricante[fabricanteseleccionado]..producto[productosel].imgp}"></mx:ComboBox>
<mx:Image x="0" y="0" width="124" height="84" source="logosct.jpg"/>
<mx:Image x="10" y="130" width="175" height="175" id="imgp" autoLoad="true"/>
<mx:Button x="265" y="172" id="butpdf" label="PDF" width="109" click="{ ira(fabricantes..fabricante[fabricanteseleccionado]..producto[productosel].pdf) }"/>
<mx:Button x="265" y="217" id="butimagen" label="Imágen Alta" width="109" click="{ ira(fabricantes..fabricante[fabricanteseleccionado]..producto[productosel].img) }"/>
<mx:Button x="265" y="262" id="butimagenb" label="Imágen Baja" width="109" click="{ ira(fabricantes..fabricante[fabricanteseleccionado]..producto[productosel].imgb) }"/>
</mx:Panel>
</mx:Application>
Y funciona de maravilla, se ve bonito y todo. El asunto es cuando copio el directorio a la intranet (en este caso el disco I:\ ). Y me salta esto:
Código :
SecurityError: Error #2148: El archivo SWF file://I:\sct\HOJAS DE PRODUCTO\Base de Datos de Productos\SCTPB.swf no puede acceder al recurso local Datos/plantronics/a100.pdf. Sólo los archivos SWF locales del sistema de archivos y de confianza pueden acceder a los recursos locales. at global/flash.net::navigateToURL() at SCTPB/ira() at SCTPB/__butpdf_click()
Asique consultando en la web de ayuda de Adobe me enteré que el problema se da cuando pones como objetivo enlaces/archivos que se encuentren en otro dominio que el swf que sean llamados a ventanas "_self", "_top" , etc, pero no a "_blank" o un nombre de ventana personalizada. Entonces dije "De P. Madre, lo corrijo...." Y el error seguía ahí. Asique investigando descubrí que al html tenía que ponerle dentro del codigo "embed" y como parámetro de "object" el legendario:
Código :
allowScriptAccess="always"
Asique llevo 2 días partiendome la cabeza contra el monitor y no encuentro el error. La verdad, me estan empezando a dar ataques psicóticos
A ver si la gente de CLab (que de aquí he aprendido mucho) tiene alguna idea de a porque pasa esto. Y porque al cambiar la carpeta completa de sitio considera que los archivos de pronto están en otro dominio



