Y at-il un moyen de déplacer ou de mettre à l'échelle un groupe de MovieClips sur la scène comme un seul, sans les mettre à l'intérieur d'un autre MovieClip?Modifier plusieurs MovieClips en un seul
Thanx :)
Y at-il un moyen de déplacer ou de mettre à l'échelle un groupe de MovieClips sur la scène comme un seul, sans les mettre à l'intérieur d'un autre MovieClip?Modifier plusieurs MovieClips en un seul
Thanx :)
Edit:
Si vous écoutez un événement resize, il y a quelques propriétés que vous pouvez utiliser, je suppose que votre propriété Stage.scaleMode est réglé sur NO_SCALE.
Vous pouvez définir un ratio de 1 en définissant votre valeur de dimensions maximales sur Capabilities.screenResolutionX et Capabilities.screenResolutionY, ce qui vous donnera les dimensions d'écran maximales d'un utilisateur. Veuillez noter que ces dimensions correspondent à des dimensions en plein écran, ne tenant pas compte de la barre d'outils du navigateur par exemple.
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/Capabilities.html
Vous pouvez ensuite calculer vos clips vidéo échelle actuelle en comparant votre largeur actuelle scène/hauteur avec les réglages max.
const MAX_WIDTH:int = Capabilities.screenResolutionX;
const MAX_HEIGHT:int = Capabilities.screenResolutionY;
//These values should be updated in your resize event listener
//For a pure AS3 project, I usually use Javascript functions
//to get a window dimensions
var currentWidth;
var currentHeight;
var widthScale:Number = currentWidth/MAX_WIDTH;
var heightScale:Number = currentHeight/MAX_HEIGHT;
Enfin, ne serait-il pas plus simple de définir votre propriété stage.scaleMode sur EXACT_FIT?
Fin de modifier
Mettez vos MovieClips dans un tableau et une boucle à travers le tableau pour les modifier, si chaque MovieClip a besoin d'une modification spécifique, créer un tableau d'objets qui stockera la MovieClip ainsi que les paramètres de modifications .
var mc1:MovieClip = new MovieClip();
var mc2:MovieClip = new MovieClip();
//etc...
var mcn:MovieClip = new MovieClip();
// you could also use a Vector
var mcs:Array = [mc1 , mc2 , .... , mcn];
var scale:Number = .6;
for(var i:int ; i < mcs.length ; ++i)
{
mcs[i].scaleX = widthScale
mcs[i].scaleY = heightScale;
}
Si vous utilisez une classe pour vos MovieClips, vous devez créer une méthode spécifique pour les modifier, mais vous auriez encore en boucle à travers les MovieClips pour régler la modification
var mc1:MovieClip = new Example();
var mc2:MovieClip = new Example();
//etc...
public class Example extends MovieClip
{
public function modify(params:Object):void
{
this.scaleX = params.scaleX;
this.scaleY = params.scaleY;
//or for example
TweenMax.to(this , params.delay , {scaleX:params.scaleX ,
scaleY:params.scaleY , ease:params.ease});
}
}
for(var i:int ; i < mcs.length ; ++i)
mcs[i].modify({scaleX:.5 , scaleY:.6 , delay:1 , ease:Quad.easeOut});
J'ai eu beaucoup, c'est déjà dans un tableau. Fondamentalement, c'est un groupe de MovieClips placés dans certaines frontières (imaginaires). Je veux l'escalader tous ensemble. –
(joli nom BTW) –
:) Avez-vous essayé le premier exemple de code? Vous avez juste besoin de définir un numéro d'échelle pour mettre à l'échelle tous vos mcs. – PatrickS