Apache flex 如何在Flex中使用位图图像创建反射效果?

Apache flex 如何在Flex中使用位图图像创建反射效果?,apache-flex,flash,actionscript,air,Apache Flex,Flash,Actionscript,Air,我正在寻找一种简单、干净、内存高效的方法来创建反射效果,并将其应用到我在运行时加载到Flex应用程序中的位图图像上(你知道的,这是一种由著名的iPhone UI推广的反射效果)。源图像的类型会有所不同(JPG、PNG等),但可接受的解决方案可以假定每个图像都已加载并存储为位图数据 我希望能够对BitmapData的某些视图应用反射效果(可选),但仍然保持源BitmapData的完整性,因为并非所有视图都需要反射效果。非常感谢您的真知灼见!提前感谢。您可以使用本课程: 这可能并不完美,但至少会给

我正在寻找一种简单、干净、内存高效的方法来创建反射效果,并将其应用到我在运行时加载到Flex应用程序中的位图图像上(你知道的,这是一种由著名的iPhone UI推广的反射效果)。源图像的类型会有所不同(JPG、PNG等),但可接受的解决方案可以假定每个图像都已加载并存储为位图数据


我希望能够对BitmapData的某些视图应用反射效果(可选),但仍然保持源BitmapData的完整性,因为并非所有视图都需要反射效果。非常感谢您的真知灼见!提前感谢。

您可以使用本课程:

这可能并不完美,但至少会给你一个快速的开始。然后根据您的需要进行更新和修改


HTH

您可以使用该类:

这可能并不完美,但至少会给你一个快速的开始。然后根据您的需要进行更新和修改


HTH

可能是一种更简单的方法,但我会说,只需将图像的第二个副本倒置并透明显示即可:

<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>

可能是一种更简单的方法,但我要说的是,只需将图像的第二个副本倒置并透明显示即可:

<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>

您始终可以使用scaleX=-1

这将水平翻转图像。
但它使用左侧作为轴翻转,因此必须将图像的x位置调整为image.x=image.x+image.widt

您始终可以使用scaleX=-1

这将水平翻转图像。 但它使用左侧作为轴翻转,因此必须将图像的x位置调整为image.x=image.x+image.widt

,附带源代码和演示视频。希望它能帮助其他寻找灵活解决方案的人。

,附带源代码和演示视频。希望它能帮助其他寻求灵活解决方案的人