Bonjour,
Mon problème est simple mais à la fois compliqué... Cela fait 2 jours que je planche dessus sans pouvoir la parade. Si quelqu'un pouvait m'aider, je lui en serais reconnaissant.
Voila. Je lance une applet dans une nouvelle fenêtre (style pop up). Cette fenêtre est resizable. Lorsque je la redimenssionne manuellement, je redimenssionne mes controles dans mon applet (interaction javascript - java).
Cependant, j'obtiens mon ratio de redimenssionnement par le rapport de la hauteur initial de l'applet à la largeur fixée par la souris. Malheureusement, ne faisant rien du point de vue de la longueur, rien ne se passe lorsque je redimenssionne horzyzontalement. Or moi, je voudrais également redimenssionner ma fenêtre avec le même ratio ave la largeur initiale sur la longueur.
NB : Le problème est que je veux faire cette action sur la fonction RESIZE dans le javascript... Et par conséquent cela entraine un resize perpétuel... (Appel récursif) Et ça c'est très très bad...
Est-ce que quelqu'un pourrait me donner une petite astuce éventuellement, ce serait très sympa ?!? Chuss...
Voici mon code de la fenêtre de l'applet (ouverte en mode resizable sans les scrollbars) :
<HTML>
<HEAD>
<TITLE>Resizable Applet Demo</TITLE>
</HEAD>
<BODY onResize="resize()" onLoad="start()" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<SCRIPT LANGUAGE="JavaScript">
var normalWidth=0;
var normalHeight=0;
function start(){
normalWidth=document.body.clientWidth;
normalHeight=document.body.clientHeight;
resize();
}
function resize() {
var w_newWidth,w_newHeight;
var w_maxWidth=1600, w_maxHeight=1200;
if (navigator.appName.indexOf("Microsoft") != -1){
w_newWidth=document.body.clientWidth;
w_newHeight=document.body.clientHeight;
}else{
var netscapeScrollWidth=15;
w_newWidth=window.innerWidth-netscapeScrollWidth;
w_newHeight=window.innerHeight-netscapeScrollWidth;
}
if (w_newWidth>w_maxWidth)
w_newWidth=w_maxWidth;
if (w_newHeight>w_maxHeight)
w_newHeight=w_maxHeight;
var ratio=w_newHeight/normalHeight;
if(ratio==1) return;
// if(document.body.clientWidth!=ratio*normalWidth) {
self.window.resizeTo(normalWidth*ratio,w_newHeight);
document.myApplet.setSize(normalWidth*ratio,w_newHeight);
alert(ratio);
window.scroll(0,0);
}
window.onResize = resize;
window.onLoad = resize;
/*
if (document.all) {
x=document.body.scrollWidth;
ww=(x<(screen.width-step) && x>ww) ? x : ww;
x=document.body.scrollHeight;
hh=(x<(screen.height-step) && x>hh) ? x : hh;
redim();
}else if (document.layers) {
ww=(document.width>ww) ? (document.width+10):ww;
hh=(document.height>hh) ? (document.height+10):hh;
setTimeout("self.window.resizeTo(ww,hh);",100);
}*/
</SCRIPT>
<APPLET NAME="myApplet" CODE="Applet_SIATEL.class" width="100%" height="100%">
<param name="lang" value="en">
</APPLET>
</BODY>
</HTML>
Merci d'avance pour vos réponses... :-)
Anthony