flex titlewindow的resize方法二
3、皮肤文件(ResizableTitleWindowSkin.mxml):<?xml version="1.0" encoding="utf-8"?><s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:fb="http://ns.adobe.com/flashbuilder/2009" blendMode="normal" mouseEnabled="false" minWidth="76" minHeight="76" alpha.disabled="0.5" alpha.disabledWithControlBar="0.5"> <fx:Metadata> <![CDATA[ /** * @copy spark.skins.spark.ApplicationSkin#hostComponent */ [HostComponent("ResizableTitleWindow")] ]]> </fx:Metadata> <fx:Script fb:purpose="styling"> /* Define the skin elements that should not be colorized. For panel, border and title background are skinned, but the content area and title text are not. */ static private const exclusions:Array = ["background", "titleDisplay", "contentGroup"]; /** * @private */ override public function get colorizeExclusions():Array {return exclusions;} /** * @private */ override protected function initializationComplete():void { useChromeColor = true; super.initializationComplete(); } /** * @private */ override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void { if (getStyle("borderVisible") == true) { border.visible = true; background.left = background.top = background.right = background.bottom = 1; contents.left = contents.top = contents.right = contents.bottom = 1; } else { border.visible = false; background.left = background.top = background.right = background.bottom = 0; contents.left = contents.top = contents.right = contents.bottom = 0; } dropShadow.visible = getStyle("dropShadowVisible"); var cr:Number = getStyle("cornerRadius"); var withControls:Boolean = (currentState == "disabledWithControlBar" || currentState == "normalWithControlBar" || currentState == "inactiveWithControlBar"); if (cornerRadius != cr) { cornerRadius = cr; dropShadow.tlRadius = cornerRadius; dropShadow.trRadius = cornerRadius; dropShadow.blRadius = withControls ? cornerRadius : 0; dropShadow.brRadius = withControls ? cornerRadius : 0; setPartCornerRadii(topMaskRect, withControls); setPartCornerRadii(border, withControls); setPartCornerRadii(background, withControls); } if (bottomMaskRect) setPartCornerRadii(bottomMaskRect, withControls); borderStroke.color = getStyle("borderColor"); borderStroke.alpha = getStyle("borderAlpha"); backgroundFill.color = getStyle("backgroundColor"); backgroundFill.alpha = getStyle("backgroundAlpha"); super.updateDisplayList(unscaledWidth, unscaledHeight); } /** * @private */ private function setPartCornerRadii(target:Rect, includeBottom:Boolean):void { target.topLeftRadiusX = cornerRadius; target.topRightRadiusX = cornerRadius; target.bottomLeftRadiusX = includeBottom ? cornerRadius : 0; target.bottomRightRadiusX = includeBottom ? cornerRadius : 0; } private var cornerRadius:Number; </fx:Script> <s:states> <s:State name="normal" /> <s:State name="inactive" stateGroups="inactiveGroup" /> <s:State name="disabled" /> <s:State name="normalWithControlBar" stateGroups="withControls" /> <s:State name="inactiveWithControlBar" stateGroups="withControls, inactiveGroup" /> <s:State name="disabledWithControlBar" stateGroups="withControls" /> </s:states> <!--- drop shadow can't be hittable so it stays sibling of other graphics @private--> <s:RectangularDropShadow id="dropShadow" blurX="20" blurY="20" alpha="0.32" alpha.inactiveGroup="0.22" distance="11" distance.inactiveGroup="7" angle="90" color="0x000000" left="0" top="0" right="0" bottom="0"/> <!--- drop shadow can't be hittable so all other graphics go in this group --> <s:Group left="0" right="0" top="0" bottom="0"> <!--- top group mask @private--> <s:Group left="1" top="1" right="1" bottom="1" id="topGroupMask"> <!--- @private--> <s:Rect id="topMaskRect" left="0" top="0" right="0" bottom="0"> <s:fill> <s:SolidColor alpha="0"/> </s:fill> </s:Rect> </s:Group> <!--- bottom group mask @private--> <s:Group left="1" top="1" right="1" bottom="1" id="bottomGroupMask" includeIn="withControls"> <!--- @private--> <s:Rect id="bottomMaskRect" left="0" top="0" right="0" bottom="0"> <s:fill> <s:SolidColor alpha="0"/> </s:fill> </s:Rect> </s:Group> <!--- layer 1: border @private --> <s:Rect id="border" left="0" right="0" top="0" bottom="0" > <s:stroke> <!--- Defines the TitleWindowSkin class's border stroke. The default value is 1. --> <s:SolidColorStroke id="borderStroke" weight="1" /> </s:stroke> </s:Rect>