1
這實在讓我感到困惑:我有一個小應用程序,它允許用戶放大/縮小,旋轉,水平翻轉和操縱照片的顏色。該照片通過Loader類加載。該應用程序在開發環境中完美工作,但如果在瀏覽器中測試失敗。我做了一些調試,發現矩陣計算中的一個值等於dev環境中的正值,而瀏覽器中的值爲負值(在完全相同的條件下)。我在這裏錯過了什麼?Actionscript數學計算在瀏覽器中的行爲有所不同
這裏是我的兩個,我的測試過程中被調用的功能代碼:
function zoomOut(e:MouseEvent):void{
matrix = imageLoader.content.transform.matrix;
imageLoader.content.scaleY = imageLoader.content.scaleY*.90;
imageLoader.content.scaleX = imageLoader.content.scaleX*.90;
statusText.text = imageLoader.content.scaleY.toString();
if(matrix.a < 0){
matrix.a = -1*imageLoader.content.scaleY;
matrix.tx = imageLoader.content.width;
}else{
matrix.a = imageLoader.content.scaleY;
}
matrix.d = imageLoader.content.scaleX;
matrix.transformPoint(newPoint(imageLoader.content.width/2,imageLoader.content.height/2));
imageLoader.content.transform.matrix = matrix;
}
function flipHorizontal(e:MouseEvent):void {
matrix =imageLoader.content.transform.matrix;
matrix.transformPoint(new Point(imageLoader.content.width/2,imageLoader.content.height/2));
if (matrix.a>0) {
matrix.a=-1*matrix.a;
matrix.tx=imageLoader.content.width+imageLoader.content.x;
} else {
matrix.a=-1*matrix.a;
matrix.tx=imageLoader.content.x-imageLoader.content.width;
}
imageLoader.content.transform.matrix=matrix;
}
從我可以告訴,imageLoader.content.scaleY在瀏覽器環境等同不同。
非常感謝您的幫助。
傑森
嗨塑料鱘。我感謝您的幫助。我發現問題在哪裏,但我不知道爲什麼。如果查看flipHorizontal函數,您將看到以下行:imageLoader.content.transform.matrix = matrix;無論出於何種原因,這個公式在瀏覽器中都不起作用。不過在開發環境中。再次,不知道爲什麼。謝謝。 – Jason 2012-02-16 15:54:16
修正了它!決定簡化zoomOut函數,並使用矩陣變換進行更改:'function zoomOut(e:MouseEvent):void {matrix.scale(.9,.9);} \t imageLoader.content.transform.matrix = matrix; }'再次感謝您的幫助。 – Jason 2012-02-16 18:18:01