Salut les balèzes du java !!!
Bon moi je suis une brèle dans ce domaine mais j'essaye de tripatouiller du code pour récupérer des variables d'une url et les réinjecter dans une anim flash, jusqu'à là tout vas bien ça marche !
Mon soucis est que quand aucune variable n'est présente dans l'url mon code envoie donc des paramètres vides au flash et du coup ça bug...
Donc j'imagine qu'il faut utiliser "if" mais je ne sait pas comment faire...
Voila le code:
// <![CDATA[
if (typeof(deconcept) !== 'undefined' && deconcept.SWFObjectUtil.getPlayerVersion().major >= 6)
{
var qs = window.location.search.substring(1);
var qs_parts = qs.split('&');
var qs_params = [];
var tmp;
for (var i=0;i<qs_parts.length;++i) {
tmp = qs_parts[i].split('=');
qs_params[tmp[0]] = tmp[1];
var so = new SWFObject("krpano.swf", "krpanoSWFObject", "100%", "100%", "9.0.28","#000000");
so.addVariable("xml","angers.xml");
so.addParam("wmode","opaque");
so.addVariable('view.hlookat', qs_params['x']);
so.addVariable('view.vlookat', qs_params['y']);
so.addVariable('view.fov', qs_params['z']);
if ( so.write("krpanoDIV") ) { var mousewheelfixes = new SWFkrpanoMouseWheel(so); }
}
Slt tu pourrais faire une petite modification sur ton code, pour gagner en lisibilité et en traitement
Au lieu de mettre :
# nomVariable = nomVariable + "="
# var taille = nomVariable.length
# if (infos.indexOf(nomVariable)!=-1)
# variable = infos.substring(infos.indexOf(nomVariable)+taille,infos.length).substring(0,infos.substring(infos.indexOf(nomVariable)+taille,infos.length).indexOf("&"))
Mettre à la place :
# nomVariable = nomVariable + "=";
# if ((pos = infos.indexOf(nomVariable)) !=-1)
# {
# variable = infos.substring(pos + nomVariable.length, infos.length);
# variable = variable.substring(0, variable.indexOf("&"));
# }
Bon moi je suis une brèle dans ce domaine mais j'essaye de tripatouiller du code pour récupérer des variables d'une url et les réinjecter dans une anim flash, jusqu'à là tout vas bien ça marche !
Mon soucis est que quand aucune variable n'est présente dans l'url mon code envoie donc des paramètres vides au flash et du coup ça bug...
Donc j'imagine qu'il faut utiliser "if" mais je ne sait pas comment faire...
Voila le code:
// <![CDATA[
if (typeof(deconcept) !== 'undefined' && deconcept.SWFObjectUtil.getPlayerVersion().major >= 6)
{
var qs = window.location.search.substring(1);
var qs_parts = qs.split('&');
var qs_params = [];
var tmp;
for (var i=0;i<qs_parts.length;++i) {
tmp = qs_parts[i].split('=');
qs_params[tmp[0]] = tmp[1];
var so = new SWFObject("krpano.swf", "krpanoSWFObject", "100%", "100%", "9.0.28","#000000");
so.addVariable("xml","angers.xml");
so.addParam("wmode","opaque");
so.addVariable('view.hlookat', qs_params['x']);
so.addVariable('view.vlookat', qs_params['y']);
so.addVariable('view.fov', qs_params['z']);
if ( so.write("krpanoDIV") ) { var mousewheelfixes = new SWFkrpanoMouseWheel(so); }
}
}
else
{
document.getElementById("krpanoDIV").innerHTML = '<center>ERROR:
Adobe Flash Player 9 needed
...click here to download...
</center>
';
}
// ]]>
Donc en gros les variables
so.addVariable('view.hlookat', qs_params['x']);
so.addVariable('view.vlookat', qs_params['y']);
so.addVariable('view.fov', qs_params['z']);
ne doivent êtres pas envoyées si elles sont absente de l'url... une idée ?
Si je ne suis pas clair l'essai est là : http://www.360images.fr/360/angers_haute_def/angers.html?x=34.42198796204111&y=3.0000000000000036&z=59.727912431587185
En gros c'est pour pouvoir partager une position d'un panorama 360° sur facebook...
Merci du coup de main !!!
new String(decodeURIComponent(location.href));
Le code initialement proposé par Bud peut être modifié comme suit :
function getVar (nomVariable)
{
var aUri = new String(decodeURIComponent(location.href));
var infos = "&" + aUri.substring(aUri.indexOf("?")+1,
aUri.length)+"&";
if (infos.indexOf("#")!=-1)
infos = "&" + infos.substring(0,infos.indexOf("#"))+"&";
var variable=0;
{
nomVariable = "&" + nomVariable + "=";
var lenVar = nomVariable.length;
var p = infos.indexOf(nomVariable);
if (p != -1)
{
variable = infos.substring(p+lenVar,
infos.length).substring(0,infos.substring(p+lenVar,infos.length).indexOf("&"));
}
}
return variable
}
Au lieu de mettre :
# nomVariable = nomVariable + "="
# var taille = nomVariable.length
# if (infos.indexOf(nomVariable)!=-1)
# variable = infos.substring(infos.indexOf(nomVariable)+taille,infos.length).substring(0,infos.substring(infos.indexOf(nomVariable)+taille,infos.length).indexOf("&"))
Mettre à la place :
# nomVariable = nomVariable + "=";
# if ((pos = infos.indexOf(nomVariable)) !=-1)
# {
# variable = infos.substring(pos + nomVariable.length, infos.length);
# variable = variable.substring(0, variable.indexOf("&"));
# }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.