1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| <?xml version="1.0" encoding="utf-8"?>
<s:SkinnableContainer xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
skinClass="skins.ScaleSampleSkin"
backgroundAlpha="0.5" backgroundColor="0x0099ff" backgroundColor.over="0xff9900"
rollOver="rollOverHandler(event)" rollOut="rollOutHandler(event)">
<fx:Script>
<![CDATA[
import assets.Resources;
import gardeneditor.gardenplan.Item_line;
import gardeneditor.toolbar.ToolEvent;
private var _item:Item_line;
private var _realSize:Number;
[Bindable]
protected var _scale:Number;
public function get item():Item_line
{
return _item;
}
public function set item(value:Item_line):void
{
if(value !== _item){
_item = value;
_item.addEventListener(MouseEvent.ROLL_OVER,rollOverHandler);
_item.addEventListener(MouseEvent.ROLL_OUT,rollOutHandler);
}
}
[Bindable]
public function get realSize():Number
{
return _realSize;
}
public function set realSize(value:Number):void
{
_realSize = value;
_scale = calcScale();
}
protected function calcScale():Number{
var p0:Point = item.points[0];
var p1:Point = item.points[1];
var distance:Number = Point.distance(p0,p1);
return realSize / distance;
}
protected function deleteButton_clickHandler(event:MouseEvent):void
{
dispatchEvent(new ToolEvent(ToolEvent.ITEM_DELETE,item,null,null,this));
}
protected function rollOverHandler(event:MouseEvent):void
{
currentState = "over";
invalidateSkinState();
item.isActive = true;
}
protected function rollOutHandler(event:MouseEvent):void
{
currentState = "normal";
invalidateSkinState();
item.isActive = false;
}
]]>
</fx:Script>
<s:states>
<s:State name="normal"/>
<s:State name="over"/>
</s:states>
<s:layout>
<s:HorizontalLayout verticalAlign="middle"/>
</s:layout>
<s:Label text="{currentState}"/>
<s:Label id="scaleText" text="{Math.round(_scale*10000)/10000}"/>
<!--<s:Button id="deleteButton" icon="{Resources.BUTTON_CLOSE}" click="deleteButton_clickHandler(event)" skinClass="skins.IconButtonSkin" buttonMode="true"/>-->
</s:SkinnableContainer> |
Partager