Ändra storlek och skaländra objekt

Flash Player 9 och senare, Adobe AIR 1.0 och senare

Det finns två sätt att mäta och ändra storlek på visningsobjekt, antingen via dimensionsegenskaperna (width och height) eller skalningsegenskaperna (scaleX och scaleY).

Alla visningsobjekt har egenskapen width och height som från början anges som storleken på objektet i antal pixlar. Du kan läsa in värdena för dessa egenskaper så att storleken på visningsobjektet mäts. Du kan även ange nya värden för att ändra objektets storlek enligt följande:

// Resize a display object. 
square.width = 420; 
square.height = 420; 
 
// Determine the radius of a circle display object. 
var radius:Number = circle.width / 2;

Genom att ändra egenskaperna height eller width skaländras objektet, vilket innebär att innehållet sträcks ut eller trycks ihop för att passa in i den nya ytan. Om visningsobjektet innehåller enbart vektorformer kommer dessa att ritas om i den nya skalan, utan försämrad kvalitet. Alla grafikelement för bitmappar i visningsobjektet skaländras i stället för att ritas om. Ett digitalfoto, exempelvis, vars bredd och höjd ökas mer än de faktiska dimensionerna i bildens pixelinformation kommer att se taggigt ut.

När du ändrar egenskaperna width eller height i ett visningsobjekt uppdateras även egenskaperna scaleX och scaleY.

Obs! TextField-objekt är ett undantag till det här skalningsbeteendet. Textfältens storlek måste ändras automatiskt och anpassas efter textbrytningar och teckenstorlekar. Därför återställs textfältens scaleX- eller scaleY-värden till 1 efter storleksändringen. Om du justerar scaleX- eller scaleY-värdena för ett TextField-objekt ändras och anpassas emellertid bredd- och höjdvärdena efter de skalningsvärden som du anger.

Dessa egenskaper representerar den relativa storleken på visningsobjektet jämfört med den ursprungliga storleken. I egenskaperna scaleX och scaleY används decimalvärden som representerar procentandelar. Om till exempel visningsobjektets egenskap width har ändrats så att den utgör halva bredden mot ursprunglig storlek får objektets egenskap scaleX värdet 0,5, vilket innebär 50 procent. Om höjden har dubblerats kommer egenskapen scaleY att få värdet 2, vilket innebär 200 procent.

// circle is a display object whose width and height are 150 pixels. 
// At original size, scaleX and scaleY are 1 (100%). 
trace(circle.scaleX); // output: 1 
trace(circle.scaleY); // output: 1 
 
// When you change the width and height properties,  
// Flash Player changes the scaleX and scaleY properties accordingly. 
circle.width = 100; 
circle.height = 75; 
trace(circle.scaleX); // output: 0.6622516556291391 
trace(circle.scaleY); // output: 0.4966887417218543

Storleksändringar är inte proportionella. M.a.o., om du ändrar egenskapen height för en fyrkant, men inte motsvarande width, så kommer proportionerna inte längre att vara desamma. Fyrkanten blir i stället en rektangel. Om du vill göra relativa storleksändringar på ett visningsobjekt kan du ange värdena för egenskaperna scaleX och scaleY, i stället för egenskaperna width eller height. Med följande kod ändras egenskapen width för visningsobjektet square. Därefter ändras den lodräta skalan (scaleY) för att motsvara den vågräta skalan, så att fyrkanten får en proportionell storlek.

// Change the width directly. 
square.width = 150; 
 
// Change the vertical scale to match the horizontal scale,  
// to keep the size proportional. 
square.scaleY = square.scaleX;