flex 4 dropdownlist skin自定义 1
dropdownlist的皮肤1自定义,达到一下效果:
1.label 字体改变
2.长度宽度背景色改变content..corol
3.下拉框的背景色改变,鼠标滚动和选择时候的条目背景变橙色
4.小三角的button无边框
5.没有高光效果
基本皮肤:skin_dropdownlist
<?xml version="1.0" encoding="utf-8"?>
<!--
ADOBE SYSTEMS INCORPORATED
Copyright 2008 Adobe Systems Incorporated
All Rights Reserved.
NOTICE: Adobe permits you to use, modify, and distribute this file
in accordance with the terms of the license agreement accompanying it.
-->
<!--- The default skin class for the Spark DropDownList component.
The skin for the anchor button for a DropDownList component
is defined by the DropDownListButtonSkin class.
<p>In a custom skin class that uses transitions, set the
<code>itemDestructionPolicy</code> property to <code>none</code>
for the PopUpAnchor defined by the popUp property.</p>
@see spark.components.DropDownList
@see spark.skins.spark.DropDownListButtonSkin
@langversion 3.0
@playerversion Flash 10
@playerversion AIR 1.5
@productversion Flex 4
-->
<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" alpha.disabled=".5">
<!-- host component -->
<fx:Metadata>
<![CDATA[
/**
* @copy spark.skins.spark.ApplicationSkin#hostComponent
*/
[HostComponent("spark.components.DropDownList")]
]]>
</fx:Metadata>
<fx:Script fb:purpose="styling">
<![CDATA[
/* Define the content fill items that should be colored by the "contentBackgroundColor" style. */
static private const contentFill:Array = ["bgFill"];
/**
* @private
*/
override public function get contentItems():Array {return contentFill};
/**
* @private
*/
override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
{
if (getStyle("borderVisible") == false)
{
if (border)
border.visible = false;
if (background)
{
background.left = background.top = background.right = background.bottom = 0;
}
if (scroller)
scroller.minViewportInset = 0;
}
else
{
if (border)
border.visible = true;
if (background)
{
background.left = background.top = background.right = background.bottom = 1;
}
if (scroller)
scroller.minViewportInset = 1;
}
if (dropShadow)
dropShadow.visible = getStyle("dropShadowVisible");
openButton.setStyle("cornerRadius", getStyle("cornerRadius"));
if (borderStroke)
{
borderStroke.color = getStyle("borderColor");
borderStroke.alpha = getStyle("borderAlpha");
}
super.updateDisplayList(unscaledWidth, unscaledHeight);
}
]]>
</fx:Script>
<s:states>
<s:State name="normal" />
<s:State name="open" />
<s:State name="disabled" />
</s:states>
<!---
The PopUpAnchor control that opens the drop-down list.
<p>In a custom skin class that uses transitions, set the
<code>itemDestructionPolicy</code> property to <code>none</code>.</p>
-->
<s:PopUpAnchor id="popUp" displayPopUp.normal="false" displayPopUp.open="true" includeIn="open"
left="0" right="0" top="0" bottom="0" itemDestructionPolicy="auto"
popUpPosition="below" popUpWidthMatchesAnchorWidth="true">
<!---
This includes borders, background colors, scrollers, and filters.
@copy spark.components.supportClasses.DropDownListBase#dropDown
-->
<s:Group id="dropDown">
<!--- @private -->
<s:RectangularDropShadow id="dropShadow" blurX="20" blurY="20" alpha="0.45" distance="7"
angle="90" color="#000000" left="0" top="0" right="0" bottom="0"/>
<!--- @private -->
<s:Rect id="border" left="0" right="0" top="0" bottom="0" >
<s:stroke>
<!--- border stroke @private -->
<s:SolidColorStroke id="borderStroke" weight="1"/>
</s:stroke>
</s:Rect>
<!-- fill 下拉框的背景色-->
<!--- Defines the appearance of drop-down list's background fill. -->
<s:Rect id="background" left="1" right="1" top="1" bottom="1" >
<s:fill>
<!---
The color of the drop down's background fill.
The default color is 0xFFFFFF.
-->
<s:SolidColor id="bgFill" color="0xffffff" />
</s:fill>
</s:Rect>
<!--- @private -->
<s:Scroller skinClass="skins.skin_scroller" id="scroller" left="0" top="0" right="0" bottom="0" hasFocusableChildren="false" minViewportInset="1" >
<!--- @copy spark.components.SkinnableDataContainer#dataGroup-->
<s:DataGroup id="dataGroup" itemRenderer="spark.skins.spark.DefaultItemRenderer">
<s:layout>
<s:VerticalLayout gap="0" horizontalAlign="contentJustify" requestedMinRowCount="1" requestedMaxRowCount="6"/>
</s:layout>
</s:DataGroup>
</s:Scroller>
</s:Group>
</s:PopUpAnchor>
<!--- The default skin is DropDownListButtonSkin.
@copy spark.components.supportClasses.DropDownListBase#openButton
@see spark.skins.spark.DropDownListButtonSkin -->
<s:Button id="openButton" left="0" right="0" top="0" bottom="0" focusEnabled="false" tabEnabled="false"
skinClass="skins.skin_droplistbtn"/>
<!--- @copy spark.components.DropDownList#labelDisplay -->
<s:Label id="labelDisplay" verticalAlign="middle" maxDisplayedLines="1"
mouseEnabled="false" mouseChildren="false" fontFamily="Arial" fontSize="14"
left="7" right="30" top="2" bottom="2" width="75" verticalCenter="1" />
</s:SparkSkin>
btn重构:
<?xml version="1.0" encoding="utf-8"?>
<!--
ADOBE SYSTEMS INCORPORATED
Copyright 2008 Adobe Systems Incorporated
All Rights Reserved.
NOTICE: Adobe permits you to use, modify, and distribute this file
in accordance with the terms of the license agreement accompanying it.
-->
<!--- The default skin class for the Spark Button component.
@see spark.components.Button
@langversion 3.0
@playerversion Flash 10
@playerversion AIR 1.5
@productversion Flex 4
-->
<s:SparkButtonSkin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:fb="http://ns.adobe.com/flashbuilder/2009"
minWidth="21" minHeight="21"
alpha.disabled="0.5">
<fx:Metadata>
<![CDATA[
/**
* @copy spark.skins.spark.ApplicationSkin#hostComponent
*/
[HostComponent("spark.components.Button")]
]]>
</fx:Metadata>
<fx:Script fb:purpose="styling">
<![CDATA[
import spark.components.Group;
/* Define the skin elements that should not be colorized.
For button, the graphics are colorized but the label is not. */
static private const exclusions:Array = ["labelDisplay"];
/**
* @private
*/
override public function get colorizeExclusions():Array {return exclusions;}
/**
* @private
*/
override protected function initializationComplete():void
{
useChromeColor = true;
super.initializationComplete();
}
]]>
</fx:Script>
<!-- states -->
<s:states>
<s:State name="up" />
<s:State name="over" />
<s:State name="down" />
<s:State name="disabled" />
</s:states>
<!-- layer 2: fill -->
<!--- @private -->
<s:Rect id="fill" left="1" right="1" top="1" bottom="1" >
<s:fill>
<s:LinearGradient rotation="90">
<s:GradientEntry color="0xFFFFFF"
color.over="0xFFFFFF"
color.down="0xFFFFFF"
alpha="1" />
<s:GradientEntry color="0xFFFFFF"
color.over="0xFFFFFF"
color.down="0xFFFFFF"
alpha="1" />
</s:LinearGradient>
</s:fill>
</s:Rect>
<!-- layer 3: fill lowlight -->
<!--- @private -->
<s:Rect id="lowlight" left="1" right="1" top="1" bottom="1">
<s:fill>
<s:LinearGradient rotation="270">
<s:GradientEntry color="0x000000" ratio="0.0" alpha="0.0627" />
<s:GradientEntry color="0x000000" ratio="0.48" alpha="0.0099" />
<s:GradientEntry color="0x000000" ratio="0.48001" alpha="0" />
</s:LinearGradient>
</s:fill>
</s:Rect>
<!-- layer 7: border - put on top of the fill so it doesn't disappear when scale is less than 1 -->
<!--- @private -->
<s:Rect id="border" left="0" right="0" top="0" bottom="0" width="69" height="20" >
<s:stroke>
<s:LinearGradientStroke rotation="90" weight="1">
<s:GradientEntry color="0x000000"
alpha="0.5625"
alpha.down="0.6375" />
<s:GradientEntry color="0x000000"
alpha="0.75"
alpha.down="0.85" />
</s:LinearGradientStroke>
</s:stroke>
</s:Rect>
<!-- layer 8: text -->
<!--- @copy spark.components.supportClasses.ButtonBase#labelDisplay -->
<s:Label id="labelDisplay"
textAlign="center"
maxDisplayedLines="1" fontFamily="Arial" fontSize="14"
horizontalCenter="0" verticalCenter="1" verticalAlign="middle"
left="10" right="10" top="2" bottom="2">
</s:Label>
<!-- layer 9: arrow -->
<!--- The arrow graphic displayed in the anchor button. -->
<s:Path right="6" verticalCenter="0" id="arrow"
data="M 4.0 4.0 L 4.0 3.0 L 5.0 3.0 L 5.0 2.0 L 6.0 2.0 L 6.0 1.0 L 7.0 1.0 L 7.0 0.0 L 0.0 0.0 L 0.0 1.0 L 1.0 1.0 L 1.0 2.0 L 2.0 2.0 L 2.0 3.0 L 3.0 3.0 L 3.0 4.0 L 4.0 4.0">
<s:fill>
<s:RadialGradient rotation="90" focalPointRatio="1">
<!--- @private
The first part of the arrow's gradient fill.
The default alpha is .6. The default color if 0x000000. -->
<s:GradientEntry id="arrowFill1" color="0" alpha="0.6" />
<!--- @private
The second part of the arrow's gradient fill.
The default alpha is .6. The default color if 0x000000. -->
<s:GradientEntry id="arrowFill2" color="0" alpha="0.8" />
</s:RadialGradient>
</s:fill>
</s:Path>
</s:SparkButtonSkin>
转载于:https://blog.51cto.com/baigungun/1263403
flex 4 dropdownlist skin自定义 1相关推荐
- Flex Gumbo中如何自定义HSlider数据Tip样式的例子
接下来的Flex Gumbo中如何通过skinClass样式,自定义HSlider数据Tip样式. 下面是main.mxml:<?xml version="1.0" enco ...
- Flex(Gumbo)中Skin解析
我们知道Gumbo将Component进行了逻辑和视图的分离--组件类与其相应的皮肤类. 要了解Skin,我们来看下几个重要的类! 1.FxComponent :组件在初始化的时候会调用loadSki ...
- flex 自定义可视化组件的超级鸡肋的属性设置
虽然前段时间以乔布斯为首的几位大侠对 flash 的安全.性能等进行了强烈的批评,而且伴随着 html5 的日趋完善,可能这种批评声会越来越大,甚或超过南非世界杯呜呜组啦的分贝,但是个人认为 flex ...
- Flex开发中遇到未整理资源
1)Loader类 (1)精通Flex 3.0――4.2.2 动态加载资源--Loader类 地址:http://blog.csdn.net/flex_program/article/details/ ...
- Flex样式工作原理
播放头前进到第二桢,docFrameHandler 函数开始执行. 首先会执行很多Singleton.registerClass方法,然后执行有[Mixin]元标签的类的 public static ...
- Flex 常见问题解答(from MM)
Flex 概述 什么是 Macromedia Flex? Macromedia Flex 是为满足希望开发 Rich Internet 应用程序的企业级程序员的需求而推出的表示服务器和应用程序框架.R ...
- Flex实现 WebQQ那白云草地主题,云朵飘!
其实在 skin里非常容易实现,不过没有用 flash 的 帧来实现, 只用计数器,不知耗性能如何,有兴趣谁去测试回头转告下哈! 看图先吧: ApplicationSkin1.mxml <? x ...
- native聊天界面 react_ReactNative 聊天 App 实战|RN 仿微信界面群聊|朋友圈
前言 这次要给大家分享的是基于ReactNative开发的聊天APP实战项目RN_ChatRomm,运用react-native+react-navigation+react-redux+react- ...
- ReactNative聊天APP实战|仿微信聊天/朋友圈/红包界面
项目简介 最近一直在研究RN技术,想着找个项目练练手,之前就有使用vue.react技术开发过聊天项目,这次就使用reactNative技术开发个仿微信RN版.是基于 react-native+rea ...
最新文章
- 如何将自定义代码生成TVM
- 使用1个盘三个5G分区创建12G逻辑卷
- JSR303—Bean Validation验证
- lable标签的妙用
- jQuery基础学习笔记(下)
- Vue 实现图片在循环中 默认 和 选中 之间的点击切换
- HCIE-Security Day38:理论学习:信息安全管理
- Smarty下载和安装
- 2.4 GHz ZigBee网络处理器CC2530ZNP(TI)
- emmx文件用什么软件打开电脑_fbx文件是什么_电脑fbx文件用什么软件打开
- 频谱泄露、栅栏效应、补零实验
- CrownCAD 注册/登录
- 外汇风险管理:德鲁克日志之五月十一日
- 桌面计算机密码修改频率,教大家如何更改电脑的显示频率
- 如何在谷歌地图(google maps)中获取经纬度
- android studio和风天气,AndroidSDK——和风天气使用初体验
- 《金匮要略》试卷二(A)
- 字体图标的svg导入及寻找
- mongodb 查询操作,条件查询,where,find等常用操作
- RT-Thread:让W25Q128、U盘、SD卡同时搭载文件系统
热门文章
- Python用Pillow(PIL)进行简单的图像操作(边缘增强、锐利、平滑等)
- PPT里怎么加入边翻页幻灯片边连续播放音乐?
- python爬虫汽车之家全车型及基本参数入数据库(截止50524个数据)(详解)
- 微型计算机原理与应用课件,微机原理与应用课件
- 苏嵌//张福辉//2018.7.24
- 鸿蒙操作系统细节曝光,华为鸿蒙系统曝光细节,不像安卓也不像iOS,确认是华为自研!...
- endNote操作教程-2-文献导入到endNote
- nginx反向代理到第三方服务商的服务器
- 华为路由器基础知识和命令
- 精密电阻排行榜 List of Precision Resistors