2012-02-13 22 views
1

これは本当に私を困惑させています。私は、ユーザーがズームイン/ズームアウト、回転、水平方向の反転、および写真の色の操作を可能にする小さなアプリケーションを持っています。写真は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は、ブラウザ環境では異なる等化されます。

ありがとうございました。

ジェイソン

答えて

2

最も可能性が高い事はイメージが完全にロードされた前のLoader.content上で動作関数がゼロであるNaNがあなたのプロセスをその混乱を値その結果、呼ばなっていることです。

イメージがロードされ、Loader.contentLoaderInfoがCOMPLETEイベントを送出するまでこの機能を無効にしてください。

+0

こんにちはプラスチックチョウザメ。私はあなたの助けに感謝します。私はどこに問題があるのか​​分かりましたが、理由はわかりません。 flipHorizo​​ntal関数を見ると、次の行が表示されます:imageLoader.content.transform.matrix = matrix;どんな理由であれ、この方程式はブラウザーでは機能していません。しかし、それは開発環境では行います。繰り返しますが、理由はわかりません。ありがとう。 – Jason

+0

修正済み! zoomOut関数を単純化し、行列変換を使用して変更を行うことにしました: 'function zoomOut(e:MouseEvent):void { \t matrix.scale(.9、.9); \t imageLoader.content.transform.matrix = matrix; } 'もう一度お世話になりました。 – Jason