Zoom progressif suivant 2 scales prédéfinies sur tween rotation

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 1 avril 2010 à 21:13
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 11 mai 2010 à 08:53
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" :
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" :
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

2 réponses

cs_GnS Messages postés 2 Date d'inscription samedi 23 décembre 2006 Statut Membre Dernière intervention 11 mai 2010
11 mai 2010 à 00:15
Hello,

Je ne suis pas sûr d'avoir très bien compris ton problème,
mais pour le changement de dimension progressif as-tu essayé avec Tween ?

Par exemple pour un changement progressif de ton xscale en fonction du yscale cela donnerait :

new Tween(eval(tonClip, "_xscale", mx.transitions.easing.None.easeNone, _xscale, _yscale, 5, false);


Gordon and Stan
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
11 mai 2010 à 08:53
Hello,

en fait j'ai résolu le problème depuis déjà quelques semaines (en utilisant toujours une tween pour la rotation et en créant une fonction resize(); pour le redimensionnement).
Merci quand même

A plus,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
Rejoignez-nous