0

我制作了一个应用程序,用户可以加载图像,然后他们可以对其进行编辑。问题是,当我第一次加载图像时,它加载的是原始像素大小。但是当我加载另一张图像时,像素大小与原始图像不同。

这是图像加载到阶段时的功能代码:

function onFileLoadComplete(event:Event):void
        {
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onDataLoadComplete);
            loader.loadBytes(loadFileRef.data);

            loadFileRef = null;
        }

        function onDataLoadComplete(event:Event):void
        {
            var bitmapData:BitmapData = Bitmap(event.target.content).bitmapData;

            var matrix:Matrix = new Matrix();
            matrix.translate(-imageView_mc.x, -imageView_mc.y);
            matrix.scale(scaleX, scaleY);
            matrix.translate(imageView_mc.x, imageView_mc.y);

            imageView_mc.graphics.clear();
            imageView_mc.graphics.beginBitmapFill(bitmapData, matrix, false, true); 
            imageView_mc.graphics.drawRect(0, 0, bitmapData.width, bitmapData.height);
            imageView_mc.graphics.endFill();

            trace ("Image width: " ,imageView_mc.width, ", Image height: " ,imageView_mc.height);


            imageView_mc.width = stage.stageWidth;
            imageView_mc.height = stage.stageHeight;
            (imageView_mc.scaleX < imageView_mc.scaleY) ? imageView_mc.scaleY = imageView_mc.scaleX : imageView_mc.scaleX = imageView_mc.scaleY;
            (imageView_mc.scaleX > imageView_mc.scaleY) ? imageView_mc.scaleY = imageView_mc.scaleX : imageView_mc.scaleX = imageView_mc.scaleY;
            imageView_mc.x = 0.5*(stage.stageWidth-imageView_mc.width);
            imageView_mc.y = 0.5*(stage.stageHeight-imageView_mc.height);
}

那么,这段代码有问题吗?此代码用于将图像加载到舞台,然后将其按比例缩放到舞台大小。任何反馈将不胜感激。

4

1 回答 1

0

在应用矩阵变换之前加载新图像时重置您的比例。

scaleX = scaleY = 1;
于 2013-01-16T21:22:13.560 回答