【发布时间】:2010-02-01 21:58:12
【问题描述】:
我正在开发一个允许用户缩放图像的应用程序。我在使用下面的方法时遇到的问题是缩放总是发生在前一个缩放点上。
例如:如果我将图像放大一倍,然后将图像缩小一倍。我必须缩小两次才能让它回到我想要的位置。
非常感谢任何帮助。
这是我当前的代码:
private var sourceBMD:BitmapData = testImage.source as BitmapData
private var matrixScaleX:Number = 1;
private var matrixScaleY:Number = 1;
private var baseScaleX:Number = .05;
private var baseScaleY:Number = .05;
private function sourceZoom(zoomType:Boolean = false):void{
var matrix:Matrix = new Matrix();
var matriximage:BitmapData;
if(zoomType){
matrixScaleX = matrixScaleX + baseScaleX;
matrixScaleY = matrixScaleY + baseScaleY;
matrix.a = matrixScaleX;
matrix.d = matrixScaleY
}else{
matrixScaleX = matrixScaleX - baseScaleX;
matrixScaleY = matrixScaleY - baseScaleY;
matrix.a = matrixScaleX;
matrix.d = matrixScaleY;
}
matriximage = new BitmapData(sourceBMD.width, sourceBMD.height, false, 0x0000000);
trace('MatrixScaleX: ' + matrixScaleX);
trace('MatrixScaleY: ' + matrixScaleY);
trace('BaseScaleX: ' + baseScaleX);
trace('BaseScaleY: ' + baseScaleY);
trace('Matrix: ' + ObjectUtil.toString(matrix));
matriximage.draw(sourceBMD, matrix);
testImage.source = matriximage;
}
【问题讨论】:
-
我对您的问题感到困惑:缩放是否是累积的问题(两次“+”点击 = 10%,一个“+”和一个“-”等于 0%)?或者它不是累积的(两次“+”点击 = 5%,一次“+”和一次“-”等于 -5%)?还是别的什么?
-
你是对的。如果我放大两次,则必须单击缩小 3 次。我拍摄了一个简单的截屏视频来准确展示我所看到的。 screencast.com/users/rottmanj/folders/Jing/media/…
标签: apache-flex actionscript-3