Flex(Gumbo)中Skin解析
我们知道Gumbo将Component进行了逻辑和视图的分离--组件类与其相应的皮肤类。
要了解Skin,我们来看下几个重要的类!
1.FxComponent :组件在初始化的时候会调用loadSkin(),partAdded() 来加载Skin和组件部件。
2.Group:这是个功能很强大的容器类,属性content是个Object,Group能自动解析content,若是可视元素会将其加入到显示列表当中去。若是GraphicsElement,会为GraphicsElement assign画板(new Sprite()).再将画板加入显示列表。
3.Skin:类相当简单,继承Group。多加个fxComponent属性。
4.GraphicsElement:顶层类,用于各种绘制(shape,text ,Raster images etc..).
他们之间的关系如下图:
我们再看下绘制元素间的继承关系。
StrokedElement(笔画绘制):更新重绘的时候 会调用三个方法
1.beginDraw(g):设置笔画样式。stroke.draw(),
2.drawElements(g):开始绘制图形。
3.endDraw(): 结束绘制。
FilledElement(填充绘制)。 在设置样式的时候,会设置笔画和填充样式, fill.begin(g).
最后我们得出几个我们常用的绘制模型 Lline --线条,Rect-四方形,Ellipse-椭圆 ect...
这里我们关注下Path ,这个路径类和svg数据结合能使我们绘制任意形状的图形,这里只给个link,看看他的威力: www.degrafa.org/source/Car/Car.html
TextBox 和 TextGraphic是用于文字绘制。
关于笔画与填充。
从图中,我们看到笔画有三种
1.solidColorStroke (纯色笔画)
2 LinearGradientStroke(线性渐变笔画)
3 RadialGradientStroke(放射渐变笔画)
关于渐变色我们用类GradientEntry来表示各种渐变色。
填充的话相比多了种位图填充。
理解上面的话。Skin理解起来就简单了。
<SparkSkin xmlns="http://ns.adobe.com/mxml/2009"
minWidth="21" minHeight="21"
alpha.disabled="0.5">
<!--标记哪个组件FxXXX来加载此皮肤 -->
<Metadata>
[HostComponent("mx.components.FxXXX")]
</Metadata>
<!-- 表示绘制二色线性渐变填充的四方形 -->
<Rect left="-1" right="-1" top="-1" bottom="-1" radiusX="2" radiusY="2">
<fill>
<LinearGradient rotation="90">
<GradientEntry color="0x000000"
alpha="0.01"/>
<GradientEntry color="0x000000"
alpha="0.07"/>
</LinearGradient>
</fill>
</Rect>
<!-- 表示绘制二色线性渐变笔画的椭圆 -->
<Ellipse left="-1" top="-1" right="-1" bottom="-1">
<stroke>
<LinearGradientStroke rotation="90" weight="1">
<GradientEntry color="0x000000"
alpha="0.011"
alpha.downStates="0" />
<GradientEntry color="0x000000"
alpha="0.121" />
</LinearGradientStroke>
</stroke>
</Ellipse>
<!--绘制text -->
<TextBox id="labelField"
horizontalCenter="0" verticalCenter="1"
left="10" right="10" top="2" bottom="2">
</TextBox>
</SparkSkin>
转载于:https://www.cnblogs.com/kanlaa/archive/2009/06/14/1503147.html
Flex(Gumbo)中Skin解析相关推荐
- Flex Gumbo中如何自定义HSlider数据Tip样式的例子
接下来的Flex Gumbo中如何通过skinClass样式,自定义HSlider数据Tip样式. 下面是main.mxml:<?xml version="1.0" enco ...
- Flex Gumbo中如何通过fontWeight样式,给TextBox设置粗体文字
main.mxml <?xml version="1.0" encoding="utf-8"?> <Applicationname=" ...
- Flex开发中遇到未整理资源
1)Loader类 (1)精通Flex 3.0――4.2.2 动态加载资源--Loader类 地址:http://blog.csdn.net/flex_program/article/details/ ...
- 演示和解析Flex布局中的各种属性
文章目录 文章导读 一.justify-content center flex-start flex-end space-around space-evenly space-between 二.ali ...
- JAVA方法调用中的解析与分派
JAVA方法调用中的解析与分派 本文算是<深入理解JVM>的读书笔记,参考书中的相关代码示例,从字节码指令角度看看解析与分派的区别. 方法调用,其实就是要回答一个问题:JVM在执行一个方法 ...
- flex页面中嵌入html页面
使用flex-iframe插件 在gitHub上的地址如下 https://github.com/flex-users/flex-iframe 可以这样引入这个插件 <s:Application ...
- Bootstrap4+MySQL前后端综合实训-Day01-AM【实训安排、HBuilder下载及使用、双飞翼布局(圣杯布局)案例、CSS在线手册、flex布局中的对齐方式】
[Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记] 目 录 实训安排 日常要求.项目要求 项目开发流程 HTML+CSS+JavaScript 基 ...
- Oracle中SQL解析的流程
Oracle中SQL解析的主要流程: 我们说的游标概念比较复杂,它可以是客户端程序中的游标,服务进程中的私有游标,以及服务器端共享池里的共享游标.假设一个游标被打开了,一般来说它的共享游标信息(包括执 ...
- html子布局不超出父布局,详解flex布局中保持内容不超出容器的解决办法
在移动端,flex 布局很好用,它能够根据设备宽度来自动调整容器的宽度,用起来很方便,已经越来越离不开它,但是最近在做项目的时候发现一个问题. 就是在一个设置了 flex:1 的容器中,如果文字很长, ...
最新文章
- wordpress page显示未找到页面_通过Avada主题了解网页基本结构和页面布局
- python流程控制语句-4.python流程控制语句介绍
- UA OPTI512R 傅立叶光学导论16 Nyquist-Shannon采样定理
- 如何制作高水平简历? 制作简历时需要注意的问题
- 阿里前CEO卫哲的万字长文:被马云骂醒,看透B2B 10大核心问题!
- Apollo进阶课程㉖丨Apollo规划技术详解——Understand More on the MP Difficulty
- 为什么川渝的超市要求顾客必须“要有妈”?
- 计算机信息工程专业985,信息工程学院
- 全局配置_中兴天机配置公布:智汇屏+全局黑暗模式
- Android开发之跟踪应用更新大小
- SameMovie HBOMax Video Downloader for Mac如何在 Mac 上下载 HBO Max 视频?
- 图解递归调用过程(Python)
- linux mint 8812ac网卡,kali虚拟机连接无线网卡comfast cf-812AC(Realtek 8812BU芯片)(不支持wlan0mon)...
- Java实现魔板拼图小游戏(完整版)
- 4种“附近的人”实现方式
- IT狂人职场路:揭秘华为百度高管如何炼成?
- 读《大学生上课为什么一定要认真听讲》有感
- 网友自制 MIUI 13 海报被疯传
- 解析DELLR710服务器迁移操作内容
- 100个优秀实用性网站
热门文章
- 阿里云配置服务器iis删除,服务器如何卸载iis7
- TFRecord和tf.Example
- android 求数组最大值,面试算法知识梳理(7) - 数组第四部分
- 如何在工作中保持稳定的情绪?——打工人必看!
- ESP8266 SPI通信
- paho架构_GitHub - yanzhangfeng/paho-mqtt: Eclipse Paho MQTT C/C++ client for Embedded platforms
- 干货推荐:Excel筛选工具的使用技巧
- 自定义ImageView,实现点击之后算出点击的是身体的哪个部位
- python waitkey_关于python下cv.waitKey无响应的原因及解决方法
- Word常用快捷指令