flash之检测动画片段已在 as3 的舞台上水平翻转

tintown 阅读:23 2024-10-01 17:34:08 评论:0

如果同一个影片剪辑的两个影片剪辑实例被放置在舞台上,一个在 Flash 中水平翻转。有没有一种方法可以检测到哪个在代码中被水平翻转了? ScaleX 似乎保持不变。

MovieClip 已使用 Flash 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.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号