Comunidad de diseño web y desarrollo en internet online

galería simpleviewer

Citar            
MensajeEscrito el 29 Feb 2008 09:31 am
Hola a todos.
He creado una galería simpleviewer y me genera los siguientes archivos:
gallery.xml
index.html
swfobject.js
viewer.swf
y dos carpetas con las imágenes y las miniaturas: images y thumb

Quiero integrar esta galería en una web hecha con flash. Desde la peícula principal, mediante un botón, cargo el archivo viewer.swf y funciona todo correctamente.
El problema surge cuando yo meto todos estos archivos en otra carpeta e invoco al swf. El swf se carga correctamente pero no encuentra gallery.xml porque va a buscarle a la carpeta en la que se encuentra la película principal.
Intuyo que esto se solucionaría corrigiendo el archivo swfobject.js pero no entiendo cómo.
Dejo aquí el contenido de ese archivo por si alguien sabe qué es lo que hay que hacer

swfobject.js
/**
* SWFObject v1.4.1: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
*
* SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*
* **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
* legal reasons.
*/
if(typeof deconcept=="undefined"){var deconcept=new Object();}
if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}
if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}
deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a,_b){
if(!document.createElement||!document.getElementById){return;}
this.DETECT_KEY=_b?_b:"detectflash";
this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);
this.params=new Object();
this.variables=new Object();
this.attributes=new Array();
if(_1){this.setAttribute("swf",_1);}
if(id){this.setAttribute("id",id);}
if(w){this.setAttribute("width",w);}
if(h){this.setAttribute("height",h);}
if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}
this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion(this.getAttribute("version"),_7);
if(c){this.addParam("bgcolor",c);}
var q=_8?_8:"high";
this.addParam("quality",q);
this.setAttribute("useExpressInstall",_7);
this.setAttribute("doExpressInstall",false);
var _d=(_9)?_9:window.location;
this.setAttribute("xiRedirectUrl",_d);
this.setAttribute("redirectUrl","");
if(_a){this.setAttribute("redirectUrl",_a);}};
deconcept.SWFObject.prototype={setAttribute:function(_e,_f){
this.attributes[_e]=_f;
},getAttribute:function(_10){
return this.attributes[_10];
},addParam:function(_11,_12){
this.params[_11]=_12;
},getParams:function(){
return this.params;
},addVariable:function(_13,_14){
this.variables[_13]=_14;
},getVariable:function(_15){
return this.variables[_15];
},getVariables:function(){
return this.variables;
},getVariablePairs:function(){
var _16=new Array();
var key;
var _18=this.getVariables();
for(key in _18){_16.push(key+"="+_18[key]);}
return _16;
},getSWFHTML:function(){
var _19="";
if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){
if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");}
_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";
var _1a=this.getParams();
for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}
var _1c=this.getVariablePairs().join("&");
if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}
_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";
var _1d=this.getParams();
for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}
var _1f=this.getVariablePairs().join("&");
if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}
return _19;},write:function(_20){
if(this.getAttribute("useExpressInstall")){
var _21=new deconcept.PlayerVersion([6,0,65]);
if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){
this.setAttribute("doExpressInstall",true);
this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));
document.title=document.title.slice(0,47)+" - Flash Player Installation";
this.addVariable("MMdoctitle",document.title);}}
if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){
var n=(typeof _20=="string")?document.getElementById(_20):_20;
n.innerHTML=this.getSWFHTML();return true;
}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};
deconcept.SWFObjectUtil.getPlayerVersion=function(_23,_24){
var _25=new deconcept.PlayerVersion([0,0,0]);
if(navigator.plugins&&navigator.mimeTypes.length){
var x=navigator.plugins["Shockwave Flash"];
if(x&&x.description){_25=new deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}
}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
for(var i=3;axo!=null;i++){axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);_25=new deconcept.PlayerVersion([i,0,0]);}}
catch(e){}
if(_23&&_25.major>_23.major){return _25;}
if(!_23||((_23.minor!=0||_23.rev!=0)&&_25.major==_23.major)||_25.major!=6||_24){
try{_25=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}
catch(e){}}}return _25;};
deconcept.PlayerVersion=function(_29){
this.major=parseInt(_29[0])!=null?parseInt(_29[0]):0;
this.minor=parseInt(_29[1])||0;
this.rev=parseInt(_29[2])||0;};
deconcept.PlayerVersion.prototype.versionIsValid=function(fv){
if(this.major<fv.major){return false;}
if(this.major>fv.major){return true;}
if(this.minor<fv.minor){return false;}
if(this.minor>fv.minor){return true;}
if(this.rev<fv.rev){return false;}return true;};
deconcept.util={getRequestParameter:function(_2b){
var q=document.location.search||document.location.hash;
if(q){var _2d=q.indexOf(_2b+"=");
var _2e=(q.indexOf("&",_2d)>-1)?q.indexOf("&",_2d):q.length;
if(q.length>1&&_2d>-1){return q.substring(q.indexOf("=",_2d)+1,_2e);}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){
var _2f=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2f.length;i++){
for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=null;}}}};
if(typeof window.onunload=="function"){
var oldunload=window.onunload;
window.onunload=function(){deconcept.SWFObjectUtil.cleanupSWFs();oldunload();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}
if(Array.prototype.push==null){
Array.prototype.push=function(_32){
this[this.length]=_32;
return this.length;};}

var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for backwards compatibility
var SWFObject = deconcept.SWFObject;

Por supuesto, el problema se soluciona abriéndolo en una ventana nueva mediante el archivo index, en ese sí sé darle la nueva ruta para que vaya a la carpeta especificada a buscar los archivos, pero yo quiero que las galerías queden integradas en la web y quiero tener varias galerías, por eso tampoco puedo ubicarlas en el directorio raiz...

¿tiene esto solución?¿alguien la sabe?
Muchas gracias por vuestra ayuda,
Olga

P.D.: por lo visto publiqué este post en el foro equivocado, a ver si ahora he acertado...

Por Olga

19 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Mar 2008 04:11 pm
Nooo, para nada!!

El swfobject.js no tiene nada que ver con tu problema. Lo que yo creo es que no estás poniendo bien la ruta del archivo. Si vas a integrar varias galerías, me imagino que quieres una carpeta por galería, lo cual no tiene mayor problema, el chiste es que el viewer.swf y el galery.xml estén juntos, con sus respectivas imágenes. De hecho el swfobject.js (al menos que sepas, que es para que no le tengas que dar un click antes a la peli, para poder comenzar a navegar en ella en IE u Opera) y el index.html no los vas a usar.

Suerte y revisa tu ruta!

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 02 Mar 2008 09:31 pm
Pues entonces el problema tiene que estar en el swf que se genera, porque yo los archivos los tengo todos en la misma carpeta y si la peli principal está tambien en esa carpeta no hay ningún problema, el problema surge cuando la película sobre las que se cargan todas las demás está en otra. Si sólo tuviese una galería no pasaba nada, metía todos los archivos en el directorio raiz y ya estaba, el problema es que son 5 galerías y todos los archivos generados tienen el mismo nombre. Si abriese las galerías en ventanas independientes podría darles la ruta en el archivo html pero yo lo quiero integrar en la misma peli, cargando sobre ella el swf, pero manda a buscar el archivo gallery.xml al mismo directorio en el que se encuentra la peli principal
Jo, me da la sensación de que lo estoy explicando fatal.
No se me ocurre cómo solucionarlo. ¿se podría poner algún script en el index.htm, que es el archivo en el que cargo la peli principal, que de la instrucción de que cuando pinche en el botón del archivo swf que carga la galería busque el archivo gallery.xml en la carpeta en la que yo lo haya ubicado?
¿se entiende lo que planteo?

Por Olga

19 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Mar 2008 05:20 am
Hola, sí, ahora sí te entiendo.

Vas a meter a una peli de flash las otras 5 galerías.

Por decir, tu peli principal se llama home.swf , esta peli está en la raiz de tu sitio, ok? Vale, ahora creas 5 carpetas a las que les llamas galeria1, galeria2 y así, hasta galiería5. Dentro de cada carpeta tendrás: un gallery.xml y un viewer.swf diferentes (e intuyo las imágenes que lee el xml).

Ahora, solo falta que le pongas las rutas como son a los botones de tu pelicula home.swf

Me imagino, estás usando algún código una linea de código (actionscript) que en algún lugar dice algo así:

loadMovie("galeria1/viewer.swf");

Entonces, tienes que ponerle a cada botón, el nombre de la carpeta en dónde está su galería y el nombre del archivo. Avisame si es eso lo que fallaba. ^^

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 03 Mar 2008 06:57 am
No, lo siento pero no es eso. Es algo más complicadillo.

El problema es que la galería la genero con el adobe lighroom y entre otras cosas me crea el archivo viewer.swf, pero claro, no me genera el fla y no lo puedo modificar. Y el archivo viewer.swf, entre otras cosas parece ser que en el código manda a buscar el gallery.xml al directorio en el que se encuentre la peli principal. Vamos, que ya me puedo crear todas las carpetas del mundo y darle al botón la ruta correcta por excelencia que haga lo que haga el puto viewer.swf hace que la búsqueda del gallery la haga en la carpeta en la que esté la primera peli.
Vamos, un fallo gordo gordo del programilla en cuestión.
He convertido el swf a fla para ver qué cuernos lleva y me he encontrado con esto:
var xmlPath = "gallery.xml";
if (_root.xmlDataPath != undefined)
{
xmlPath = _root.xmlDataPath;
}
Pero no puedo modificarlo, bueno, sí puedo pero claro, la conversión de swf a fla no es buena y después hay un montón de cosas que no funcionan, por eso pensaba que igual se podía poner algún script en el htm que carga todo para hacer que cada uno de los los galery.xml los busque en la carpeta en la que yo los tengo metidos.
Por supuesto que es la misma carpeta en la que tengo el swf y las carpetas con las galerías y que en el botón escribo la ruta correcta, pero es algo un poco más complicadillo que todo eso y me estoy volviendo loca intentando dar con la solución.

De todas formas se agradece el intento de ayuda :)

Por Olga

19 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.