Rutas relativas a archivos externos en Flash
6 seguidores
Hola!
Me he dado cuenta de que, cuando intregras un swf en un html, y este llama a otros archivos externos (fotos, xml, etc...) mediante una ruta relativa, lo hace con referencia a la posición del html, mientras que si solo ejecutas el flash lo hace con referencia a si mismo.
La solución que se me ocurre pasa por cambiar la ruta al final del desarrollo del swf, pero quizás vosotros sabéis alguna otra cosa.
Muchas gracias por anticipado.
Odrakir
Lo normal, si tú no tienes control sobre dónde va a estar el swf, el html y los assets que se carguen. Suele ser que el html le pase un parámetro al swf con la ruta a partir de la cual tiene que cargar los assets.
Si resulta que sí tienes control, te recomiendo poner el swf principal en la misma ruta que el html, puede parecer más sucio, pero te ahorras problemas, sobretodo si tienes en cuenta que en los vídeos esto cambia y en lugar de tomar las rutas desde el html las toma desde el swf (cosa que, por otra parte, no me explico por qué está hecho así)
almostDesign
Muchas gracias Ricardo.
En este caso si tengo control sobre la estructura de carpetas del sitio. Sin embargo quería que al ejecutar los swf por separado también funcionasen. Lo que he hecho es utilizar la ruta con referencia al html pero añadiéndole que, si falla en la carga, intente cargar con la ruta relativa al swf.
Una solución bastante sencilla que no se me había ocurrido.
Salud!
madmaus
Puedes usar el (poco conocido, me sorprendí al dar con él hace poco) atributo 'base'.
Igual que el resto de propiedades que puedes ir enchufándole al tag PARAM y EMBED de la página (wmode, etc..), puedes usar 'base' para indicar desde qué localización tiene el swf que negociar las rutas relativas y ya no tienes el html mandando sobre esto.
Más info, aquí ;)
Espero que te sirva,
saludos!
psycho
madmaus
Ostia, que buena esa!
almostDesign
"madmaus"
Buenísimo. Algo así era lo que creía que pudiera existir, y la razón de mi pregunta.
Muchísimas gracias.
Odrakir
No lo conocía, mola.
Lo que pasa es que si al final, el tipo que hace el html no lo conoce, en la práctica es lo mismo que si te inventas tu propio parámetro. Pero está bien saberlo para hacer las cosas como se supone que deben hacerse.
elSuricatoRojo
Yo comparto la idea de poner siempre el swf al lado del html que lo contiene.
En cuanto al tema de las rutas, para mi, lo ideal es tener un xml de configuración donde se se listen todas las cargas externas que se realicen (otros xml, swf, php, etc) y asociarlo a ids. De tal forma que al cargar, por ejemplo, un swf externo lo programemos en plan cargarSWF(cargaId).. cruzas la cargaId con el listado de cargas del xml de configuración y obtienes la url/path. En ese xml de configuración tambien se puede añadir la "base" del path de otros archivos externos, en especial de aquellos de los que no sabemos a priori ni numero y el nombre.
Esta solución es muy util para tener varios entornos de desarrollo con un mismo swf (misma compilación me refiero). En tu local puedes tener un xml apuntando a unos sitios y en el servidor puedes tener otro xml de configuración apuntando a otros. Se facilita la portabilidad a otros dominios y crear entornos de simulación (apuntando a txt en vez de a php mientras éstos se desarrollan y no depender de la gente de back para testear el front).
Tambien es verdad que esta solución implica mas desarrollo y solo va a ser rentable a partir de una cierta dimensión del proyecto.
smalonso Mod
Vaya, una solución bastante efectiva también, otro día se intentará :)
almostDesign
Muy interesante. Como bien dices, a tener en cuenta en proyectos de cierta dimensión.