にステージ上で左右反転された検出することは、私は1つが反転してきたかを検出することができる方法はありますコードで横に? ScaleXは変わっていないようです。が..同じムービークリップの2つのムービークリップインスタンスがステージ上に配置され、1つは、Flashで左右反転されている場合は、ムービークリップがAS3
ムービークリップは、コードを介して、(編集 - >水平フリップ)フラッシュUIを使用して、水平方向ではない反転されています。
にステージ上で左右反転された検出することは、私は1つが反転してきたかを検出することができる方法はありますコードで横に? ScaleXは変わっていないようです。が..同じムービークリップの2つのムービークリップインスタンスがステージ上に配置され、1つは、Flashで左右反転されている場合は、ムービークリップがAS3
ムービークリップは、コードを介して、(編集 - >水平フリップ)フラッシュUIを使用して、水平方向ではない反転されています。
試してみてください。
function isFlippedHorizontally(obj:DisplayObject):Boolean
{
return obj.transform.matrix.a/obj.scaleX == -1;
}
trace(isFlippedHorizontally(yourObject));
編集:
私は、オブジェクトのscaleX
を占めているはずです。今調整。また
:
import fl.motion.MatrixTransformer;
function isFlippedHorizontally(obj:DisplayObject):Boolean
{
return MatrixTransformer.getSkewYRadians(obj.transform.matrix)/Math.PI == 1;
}
trace(isFlippedHorizontally(yourObject));
編集:縦左右反転の代わりにひっくり返さため
最後の例が誤って計算していました。
+1これは私のために働きました。 'の代わりに、オブジェクトの両方が反転し、スケーリングされている場合 – Marty
、それは<0' obj.transform.matrix.a/obj.scaleXを確認する正しいですか? –
私はそれがコンパクトでシンプルですが、あなたはまた、いくつかのBitmapData比較でそれを行うことができため、よりfireeyedoyのソリューションを好き:
var bmd1:BitmapData = new BitmapData(mc1.width, mc1.height);
var bmd2:BitmapData = new BitmapData(mc2.width, mc2.height);
var cbmd1:BitmapData = new BitmapData(mc1.width, mc1.height);
var cbmd2:BitmapData = new BitmapData(mc2.width, mc2.height);
var cmatrix1:Matrix = new Matrix();
var cmatrix2:Matrix = new Matrix();
cmatrix1.tx = -mc1.x;
cmatrix1.ty = -mc1.y;
cmatrix2.tx = -mc2.x;
cmatrix2.ty = -mc2.y;
bmd1.draw(mc1);
bmd2.draw(mc2);
cbmd1.draw(this, cmatrix1);
cbmd2.draw(this, cmatrix2);
if(cbmd1.compare(bmd1))
{
trace("mc1 is flipped!");
}
else if(cbmd2.compare(bmd1))
{
trace("mc2 is flipped!");
}
これはあなたのムービークリップが左上揃えであると仮定しています。そうでない場合は、描画中に適切なtx値とty値をマトリックスに追加する必要があります。
どのようにMovieClipが最初に反転しましたか? – sberry
申し訳ありませんが、私はより具体的にすべきでした。 FLAのライブラリにリンクされている親クリップがあります。これはSWCとしてエクスポートされ、これがコードからアクセスされるものです。コードは、このリンクされた親クリップをステージに追加します。親クリップ内には、2つの子クリップがあり、それらはFLASH IDEからその中に配置されます。 1つは反転されています([編集]> [水平方向に反転])、もう1つは反転しません。私は1つが反転したコードを経由して識別する方法を見つけ出すことはできません。 – prettymuchbryce