2010-11-08 5 views

Répondre

0

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}); 
+0

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. –

+0

(joli nom BTW) –

+0

:) 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

Questions connexes