Avatar billede schram Nybegynder
26. april 2010 - 09:45 Der er 3 kommentarer

Skaler billedet proportional

Hej
Jeg har noget as3 kode her for mit baggrunds billede:

function drawImage():void{
    StageWidth = stage.stageWidth;
    StageHeight = stage.stageHeight;
    if(tileImage){
        imageHolder.x = 0;
        imageHolder.y = topMargin;
        imageHolder.graphics.clear();
        imageHolder.graphics.beginBitmapFill(image.bitmapData);
        imageHolder.graphics.drawRect(0, 0, StageWidth, (StageHeight-topMargin-bottomMargin));
        imageHolder.graphics.endFill();
    }
    if(fsBgImage){
        maxWidth = StageWidth;
        maxHeight = (StageHeight-topMargin-bottomMargin);
        rawWidth = image.bitmapData.width;
        rawHeight = image.bitmapData.height;
        var MTRX:Matrix = new Matrix();
        var scaleX:Number = maxWidth/rawWidth;               
        var scaleY:Number = maxHeight/rawHeight;
        maxWidth = rawWidth * scaleX;
        maxHeight = rawHeight * scaleY;
        MTRX.scale(scaleX, scaleY);
        scaledImage = new BitmapData(maxWidth,maxHeight);
        scaledImage.draw(image.bitmapData, MTRX,null,null,null,true);   
        imageHolder.x = 0;
        imageHolder.y = topMargin;
        imageHolder.graphics.clear();
        imageHolder.graphics.beginBitmapFill(scaledImage);
        imageHolder.graphics.drawRect(0, 0, StageWidth, (StageHeight-topMargin-bottomMargin));
        imageHolder.graphics.endFill();
        tileImage = false;
    }

Jeg vil nu gerne have til at når man gør vinduet mindre skal det skalere proportionalt?
Nogen der kan hjælpe med det?
Avatar billede xsix Nybegynder
26. april 2010 - 10:10 #1
Det er vel bare at gå ind og lave størrelserne til procenter og så trække den samme procent fra height og width hver gang der bliver ændret på en af dem.
Avatar billede schram Nybegynder
26. april 2010 - 10:24 #2
Hvordan mener du?
Avatar billede schram Nybegynder
26. april 2010 - 10:25 #3
hele koden for baggrunden :

    if(useImageBackground){
        if(tileImage){
            if(altBgImage){
                imageHolder.x = stage.stageWidth;
                imageHolder.y = stage.stageHeight;
                imageHolder.scaleX = scaleX
                imageHolder.graphics.clear();
                imageHolder.graphics.beginBitmapFill(image.bitmapData);
                imageHolder.graphics.drawRect(0, 0, StageWidth, (StageHeight-topMargin-bottomMargin));
                imageHolder.graphics.endFill();
            }
            else{
                altImageHolder.x = 0;
                altImageHolder.y = topMargin;
                altImageHolder.graphics.clear();
                altImageHolder.graphics.beginBitmapFill(altImage.bitmapData);
                altImageHolder.graphics.drawRect(0, 0, StageWidth, (StageHeight-topMargin-bottomMargin));
                altImageHolder.graphics.endFill();
            }
        }
        if(fsBgImage){
            if(altBgImage){
                maxWidth = StageWidth;
                maxHeight = (StageHeight-topMargin-bottomMargin);
                rawWidth = image.bitmapData.width;
                rawHeight = image.bitmapData.height;
                var MTRX:Matrix = new Matrix();
                var scaleX:Number = maxWidth/rawWidth;               
                var scaleY:Number = maxHeight/rawHeight;
                maxWidth = rawWidth * scaleX;
                maxHeight = rawHeight * scaleY;
                MTRX.scale(scaleX, scaleY);
                scaledImage = new BitmapData(maxWidth,maxHeight);
                scaledImage.draw(image.bitmapData, MTRX,null,null,null,true);   
                imageHolder.x = 0;
                imageHolder.y = topMargin;
                imageHolder.graphics.clear();
                imageHolder.graphics.beginBitmapFill(scaledImage);
                imageHolder.graphics.drawRect(0, 0, StageWidth, (StageHeight-topMargin-bottomMargin));
                imageHolder.graphics.endFill();
                tileImage = false;
            }
            else{
                maxWidth = StageWidth;
                maxHeight = (StageHeight-topMargin-bottomMargin);
                rawWidth = altImage.bitmapData.width;
                rawHeight = altImage.bitmapData.height;
                var MTRX2:Matrix = new Matrix();
                var scaleX2:Number = maxWidth/rawWidth;               
                var scaleY2:Number = maxHeight/rawHeight;
                maxWidth = rawWidth * scaleX2;
                maxHeight = rawHeight * scaleY2;
                MTRX2.scale(scaleX2, scaleY2);
                scaledImage = new BitmapData(maxWidth,maxHeight);
                scaledImage.draw(altImage.bitmapData, MTRX2,null,null,null,true);   
                altImageHolder.x = 0;
                altImageHolder.y = topMargin;
                altImageHolder.graphics.clear();
                altImageHolder.graphics.beginBitmapFill(scaledImage);
                altImageHolder.graphics.drawRect(0, 0, StageWidth, (StageHeight-topMargin-bottomMargin));
                altImageHolder.graphics.endFill();
                tileImage = false;
            }
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester