Bonsoir à toutes et à tous,
j'aimerais pour mon diaporama ajouter une fonction qui permette de faire des rotations de +/-90° sur les images affichées.
Mon code fonctionne et les images pivotent correctement.
Sachant que la taille de mes images loadées doit respecter la taille d'un clip "gabarit" (750 de large par 550 de haut), j'ai donc ajouté des paramètres pour redimensionner chaque image suivant la rotation effectuée, le code fonctionne très bien mais le seul petit lézard c'est que le redimensionnement est "radical" et j'aimerais donc améliorer cela en ajoutant une fonction qui permettrait de faire un redimensionnement progressif durant la rotation effectuée (un zoom/dézoom en quelque sorte).
Voici donc mon code sans la fonction "zoom/dézoom progressif" :
Code ActionScript :
function resize(){
if(monClip._width>550 && monClip._rotation == 0 or monClip._rotation == 180 or monClip._rotation == -180){
monClip._xscale = monClip._yscale = 550/monClip._width*100;
}else if(monClip._width = 550 && monClip._rotation == 90 or monClip._rotation == 270 or monClip._rotation == -90 or monClip._rotation == -270){
monClip._xscale = monClip._yscale = 100;
}else if(monClip._height < 750 && monClip._rotation == 0 or monClip._rotation == 180 or monClip._rotation == -180){
monClip._xscale = monClip._yscale = 750/monClip._height*100;
}else if(monClip._height = 750 && monClip._rotation == 90 or monClip._rotation == 270 or monClip._rotation == -90 or monClip._rotation == -270){
monClip._xscale = monClip._yscale = 100;
}
}
clipMenu.btn_rota_gauche.onRelease = function(){
monClip.setMask(null);
monClip._xscale = monClip._yscale = 100;
new Tween(monClip, "_rotation", Strong.easeOut, monClip._rotation, monClip._rotation-90, 20);
resize();
}
clipMenu.btn_rota_droite.onRelease = function(){
monClip.setMask(null);
monClip._xscale = monClip._yscale = 100;
new Tween(monClip, "_rotation", Strong.easeOut, monClip._rotation, monClip._rotation+90, 20);
resize();
}
et voici ma tentative infructueuse pour ajouter un "zoom/dézoom progressif" :
Code ActionScript :
setInterval(zoomer(), 1000);
setInterval(dezoomer(), 1000);
zoomer = new Object();
zoomer.interval = function(){
monClip._xscale = monClip._yscale += 1;
if(monClip._xscale = monClip._yscale == 100){
clearInterval(zoomer);
}
}
dezoomer = new Object();
dezoomer.interval = function(){
monClip._xscale = monClip._yscale -= 1;
if(monClip._xscale = monClip._yscale == 550/monClip._width*100){
clearInterval(dezoomer);
}
}
function resize(){
if(monClip._width>550 && monClip._rotation == 0 or monClip._rotation == 180 or monClip._rotation == -180){
setInterval(dezoomer(), 1000);
}else if(monClip._width = 550 && monClip._rotation == 90 or monClip._rotation == 270 or monClip._rotation == -90 or monClip._rotation == -270){
setInterval(zoomer(), 1000);
}else if(monClip._height < 750 && monClip._rotation == 0 or monClip._rotation == 180 or monClip._rotation == -180){
monClip._xscale = monClip._yscale = 750/monClip._height*100;
}else if(monClip._height = 750 && monClip._rotation == 90 or monClip._rotation == 270 or monClip._rotation == -90 or monClip._rotation == -270){
monClip._xscale = monClip._yscale = 100;
}
}
clipMenu.btn_rota_gauche.onRelease = function(){
monClip.setMask(null);
monClip._xscale = monClip._yscale = 100;
new Tween(monClip, "_rotation", Strong.easeOut, monClip._rotation, monClip._rotation-90, 20);
resize();
}
clipMenu.btn_rota_droite.onRelease = function(){
monClip.setMask(null);
monClip._xscale = monClip._yscale = 100;
new Tween(monClip, "_rotation", Strong.easeOut, monClip._rotation, monClip._rotation+90, 20);
resize();
}
Comme vous pouvez vous en douter, le dernier code ne fonctionne donc pas comme prévu :), je continue à chercher une solution en grattant du côté de "setInterval", mais si quelqu'un a une autre piste plus judicieuse à proposer (je pensais à une fonction zoom/dézoom progressif suivant 2 valeurs de scale prédéfinies par exemple), et bien je suis preneur.
Merci,
BBFUNK01