<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
private function button_click(evt:Event):void {
var direction:int;
switch (evt.currentTarget) {
case degreesUp:
direction = +1;
break;
case degreesDown:
direction = -1;
break;
}
var radians:Number = degreesToRadians(direction);
var offsetWidth:Number = img.width / 2;
var offsetHeight:Number = img.height / 2;
var tempMatrix:Matrix = img.transform.matrix;
tempMatrix.translate(-offsetWidth, -offsetHeight);
tempMatrix.rotate(radians);
tempMatrix.translate(+offsetWidth, +offsetHeight);
img.transform.matrix = tempMatrix;
rotateDeg = img.rotation;
}
private function radiansToDegrees(radians:Number):Number {
var degrees:Number = radians * (180 / Math.PI);
return degrees;
}
private function degreesToRadians(degrees:Number):Number {
var radians:Number = degrees * (Math.PI / 180);
return radians;
}
]]>
</mx:Script>
<mx:Number id="rotateDeg">0</mx:Number>
<mx:NumberFormatter id="numberFormatter" precision="0" />
<mx:String id="deg">{String.fromCharCode(176)}</mx:String>
<mx:ApplicationControlBar dock="true">
<mx:Label text="rotation:" />
<mx:Button id="degreesUp"
label="+"
autoRepeat="true"
click="button_click(event);"
buttonDown="button_click(event);" />
<mx:Button id="degreesDown"
label="-"
autoRepeat="true"
click="button_click(event);"
buttonDown="button_click(event);" />
<mx:Spacer width="50" />
<mx:Label id="lbl"
text="{numberFormatter.format(rotateDeg)}{deg}" />
</mx:ApplicationControlBar>
<mx:VBox>
<mx:Image id="img"
source="http://www.helpexamples.com/flash/images/logo.png" />
</mx:VBox>
</mx:Application>