これは本当に私を困惑させています。私は、ユーザーがズームイン/ズームアウト、回転、水平方向の反転、および写真の色の操作を可能にする小さなアプリケーションを持っています。写真はLoaderクラスを介してロードされます。しかし、開発環境では完全に動作しますが、ブラウザで一度テストすると失敗します。私は少しデバッグを行い、行列計算の1つの値がdev環境では正の値になりますが、ブラウザでは負の値になります(まったく同じ条件で)。私はここで何が欠けていますか?ここでブラウザで異なる動作をする計算式計算
は私のテスト中に呼び出される関数の2のために私のコードです:私が言うことができるものから、
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
修正済み! zoomOut関数を単純化し、行列変換を使用して変更を行うことにしました: 'function zoomOut(e:MouseEvent):void { \t matrix.scale(.9、.9); \t imageLoader.content.transform.matrix = matrix; } 'もう一度お世話になりました。 – Jason