Je tente (jusqu'à présent sans succès) d'augmenter et de réduire par programmation l'échelle d'un objet sur scène. il y a un bouton Grow (grow_btn) et un bouton Shrink (shrink_btn), qui augmentent et diminuent les propriétés scaleX et scaleY d'un objet sélectionné (redObject, greenObject ou blueObject) au fil du temps. Le problème que je rencontre semble aléatoire, où parfois seulement une des propriétés (soit scaleX ou scaleY) va changer, tandis que l'autre ne le fait pas. De plus, les tailles cible et originale pour les fonctions d'interpolation ne s'ajustent pas correctement. Par exemple: 1.0 est presque deux fois plus grand que l'objet sur scène.Actionscript 3.0 Tween Erreur
//Imports
import fl.transitions.Tween;
import fl.transitions.easing.*;
//Constants And Variables
const starRotationAngle:Number = 0.5;
const starSpeed:Number = 2;
var moveForward:Boolean = true;
var selectedObject:MovieClip;
//Event Listeners & Functions
star_mc.addEventListener(MouseEvent.CLICK, rotateStar);
function rotateStar(e:MouseEvent):void
{
star_mc.rotation += 5;
}
addEventListener(Event.ENTER_FRAME, starMove);
function starMove(e:Event):void
{
if (star_mc.x >= stage.stageWidth + star_mc.width)
{moveForward = false;}
else if (star_mc.x <= stage.x - star_mc.width)
{moveForward = true;}
if (moveForward == true)
{
star_mc.x += starSpeed;
star_mc.rotation += starRotationAngle;
}
else
{
star_mc.x -= starSpeed;
star_mc.rotation -= starRotationAngle;
}
}
redObject.addEventListener(MouseEvent.CLICK, changeSelectedObjectVariable);
greenObject.addEventListener(MouseEvent.CLICK, changeSelectedObjectVariable);
blueObject.addEventListener(MouseEvent.CLICK, changeSelectedObjectVariable);
function changeSelectedObjectVariable(e:MouseEvent):void
{
selectedObject = e.currentTarget as MovieClip;
}
grow_btn.addEventListener(MouseEvent.CLICK, grow);
function grow(e:MouseEvent):void
{
var tweenGrowX:Tween = new Tween(selectedObject, "scaleX", None.easeIn, 1.0, 2.0, 3.0, true);
var tweenGrowY:Tween = new Tween(selectedObject, "scaleY", None.easeIn, 1.0, 2.0, 3.0, true);
}
shrink_btn.addEventListener(MouseEvent.CLICK, shrink);
function shrink(e:MouseEvent):void
{
var tweenShrinkX:Tween = new Tween(selectedObject, "scaleX", None.easeIn, 2.0, 1.0, 3.0, true);
var tweenShrinkY:Tween = new Tween(selectedObject, "scaleY", None.easeIn, 2.0, 1.0, 3.0, true);
}
merci. c'était ça. :) – TheDarkIn1978
wpjmurray vous remercie pour la bonne explication. Je suis conscient de la récupération de place, mais manque complètement le problème que la portée des 2 variables tween peut causer. –