Flex中利用Transform和Matrix类将图片扭曲的例子
By Minidxer | April 8, 2008
接下来的例子演示了Flex中如何利用Transform和Matrix类将Image控件横向,纵向扭曲。
让我们先来看一下Demo(可以右键View Source或点击这里察看源代码):
下面是完整代码(或点击这里察看):
Download: main.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
- layout="vertical"
- verticalAlign="middle"
- backgroundColor="white">
- <mx:Script>
- <![CDATA[
- private function radiansToDegrees(radians:Number):Number {
- return (radians * (180 / Math.PI));
- }
- private function degreesToRadians(degrees:Number):Number {
- return (degrees * (Math.PI / 180));
- }
- private function skewr(target:DisplayObject):void {
- var m:Matrix = target.transform.matrix;
- m.b = Math.tan(degreesToRadians(sliderY.value));
- m.c = Math.tan(degreesToRadians(sliderX.value));
- var t:Transform = new Transform(target);
- t.matrix = m;
- target.transform = t;
- }
- private function resetMatrix(target:DisplayObject):void {
- // Reset sliders.
- sliderX.value = 0;
- sliderY.value = 0;
- skewr(target);
- }
- ]]>
- </mx:Script>
- <mx:ApplicationControlBar dock="true">
- <mx:Form styleName="plain">
- <mx:FormItem label="skew X:">
- <mx:HSlider id="sliderX"
- minimum="-15"
- maximum="15"
- value="0"
- liveDragging="true"
- snapInterval="1"
- change="skewr(image);" />
- </mx:FormItem>
- <mx:FormItem label="skew Y:">
- <mx:HSlider id="sliderY"
- minimum="-15"
- maximum="15"
- value="0"
- liveDragging="true"
- snapInterval="1"
- change="skewr(image);" />
- </mx:FormItem>
- <mx:FormItem>
- <mx:Button label="Reset"
- click="resetMatrix(image);" />
- </mx:FormItem>
- </mx:Form>
- </mx:ApplicationControlBar>
- <mx:Image id="image"
- source="@Embed('Fx.png')"
- scaleContent="true"
- maintainAspectRatio="true"
- width="200"
- height="200" />
- </mx:Application>
代码:Peter deHaan 翻译/整理/编译:minidxer
Topics:
Flex |
No Comments » |
Tags: DateChooser, Flex, Matrix, transform, 图片扭曲