我正在寻找一种简单,干净且内存有效的方法来创建和应用反射效果(你知道那个由着名的iPhone UI推广的那个)到我加载到Flex应用程序中的位图图像运行。源图像将具有不同类型(JPG,PNG等),但是可接受的解决方案可以假设每个图像已经加载并存储为BitmapData。
我希望能够做的是,可选地,对BitmapData的某些视图应用反射效果,但仍保持源BitmapData完整,因为并非所有视图都需要反射效果。见解非常感谢!提前谢谢。
答案 0 :(得分:3)
您可以使用此课程:
http://code.google.com/p/cay/source/browse/trunk/as3/cl/cay/effects/Reflejo.as
这可能并不完美,但至少会给你一个快速的开始。然后更新&如果您喜欢,可以根据自己的需要进行修改。
HTH
答案 1 :(得分:2)
Chet Haase posted the answer I was looking for,附带源代码和演示视频。希望它能帮助其他人寻找灵活的解决方案。
答案 2 :(得分:1)
可能是一种更简单的方法,但是我会说只是显示倒置的图像的第二个副本并使其透明:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="onCC()">
<mx:Script>
<![CDATA[
private function onCC():void {
var m:Matrix = new Matrix(1,0,0,-1,flipImage.transform.matrix.tx, flipImage.transform.matrix.ty + flipImage.height);
flipImage.transform.matrix = m;
flipImage.alpha = 0.3;
}
]]>
</mx:Script>
<mx:VBox verticalGap="0">
<mx:Image source="http://stackoverflow.com/Content/Img/stackoverflow-logo-250.png">
</mx:Image>
<mx:Image id="flipImage" source="http://stackoverflow.com/Content/Img/stackoverflow-logo-250.png">
</mx:Image>
</mx:VBox>
</mx:Application>
答案 3 :(得分:0)
你总是可以使用scaleX = -1;
这将水平翻转图像。 但它使用左侧作为轴翻转,因此您必须将图像的x位置调整为image.x = image.x + image.widht;