Kity Graphic Layer API
Point
数据契约(JSON 格式)
表示一个点,结构如下:
{
x : <float>,
y : <float>
}
Size
数据契约(JSON 格式)
表示一个尺寸,结构如下:
{
width : <float>,
height : <float>
}
Container
功能拓展
提供一个容器功能
getItems() : Array
获得容器中所有的子元素
getItem(int pos) : object
获得指定位置的子元素
getFirstItem() : object
获得首个子元素
getLastItem() : object
根据 CSS Class 获得指定的图形集合
indexOf(object item) : int
获取指定子元素的位置,如果不存在则返回 -1
forEachItem(Function fn) : this
迭代每个子元素
addItem(object item, int pos) : this
添加子元素到指定的位置
appendItem(object item) : this
追加子元素到指定的位置
prependItem(object item) : this
添加子元素到最前头的位置
removeItem(int pos) : this
删除指定位置的子元素
clear() : this
清除容器中所有的子元素
Item.remove()
子元素从容器移除自身
Item.container
子元素获得包含自身的容器
EventHandler
功能拓展
表示可以处理图形事件的接口
addEventListener(name, handler(ShapeEvent))
注册指定的事件(如 mousedown、 mousemove、 mouseup、 click、 keydown 等)
removeEventListener(name [, handler(ShapeEvent)])
取消已注册的事件。如果不传绑定的处理函数,将取消所有指定类型的绑定
ShapeEvent
基类 : DomEvent
包装原生事件对象,并且提供点击的 Shape 实例
targetShape : Shape
点击的 Shape 实例
Paper
基类 : BaseClass
实现 : EventHandler, DefContainer
所有图形的
Paper(HTMLElement container) : Paper
构造函数,给定父容器 Dom,在父容器上创建 Paper 和呈现
Paper(string id) : Paper
构造函数,给定父容器 id,在父容器上创建 Paper 和呈现
getWidth() : float
获取 Paper 的宽度,单位为px
getHeight() : float
返回 Paper 的高度,单位为px
setWidth(float width) : this
设置 Paper 的宽度,单位为px
setHeight(float height) : this
设置 Paper 的高度,单位为px
setViewBox(float x, float y, float width, float height) : this
设置 Paper 的坐标范围
比如说,ViewBox 为 (0, 0, 100, 100) 的时候,一个大小为 (10, 10) 的矩形宽度占据了 Paper 的十分之一。若 Paper 实际大小为 1000px * 1000px 时,矩形实际大小就是 100px * 100px
getViewBox() : Box
获得 Paper 的坐标范围。
getShapeById(id) : Shape
获得具有指定 id 的图形
internal createDef(string tagName)
添加具有指定类型的 def,会给其分配一个 id
internal removeDef(string id)
移除具有指定 id 的 def
Styled
功能拓展
CSS 样式支持
addClass(string className) : this
添加 CSS Class
removeClass(string className) : this
删除 CSS Class
hasClass(string className) : this
判断是否存在指定的 class
setStyle(Plain styles)
设置元素的样式
Shape
基类 : Class
抽象类
实现 : EventHandler, Styled
表示一个图形
setId(string id) : this
设置图形的 id
getId() : string
获得图形的 id
getType() : string
获得图形的类型
getWidth() : int
获取图形所占的宽度
getHeight() : int
返回图形所占的高度
getSize() : Size
返回图形的大小
getBoundaryBox() : Box
获得图形的边界
setAnchor(float x, float y) : this
设置矩阵应用的旋转锚点
getAnchor() : Point
获取矩阵应用的旋转锚点
getTransform() : Matrix
获取图形当前的变换矩阵
setTransform(Matrix matrix) : this
设置图形的变换矩阵
mergeTransform(Matrix matrix) : this
合并图形的变换矩阵
translate(float dx, float dy) : this
移动图形
rotate(float degree [, float cx, float cy]) : this
旋转图形
scale(float sx [, float sy])
缩放图形,如果不给定sy,则等比缩放(认为sy = sx)
*addFilter(Filter filter) : this
添加滤镜
*removeFilter(Filter filter) : this
删除滤镜
PathDrawer
基类 : BaseClass
提供操作 PathData 的工具类
PathDrawer(Path path)
构造时给定 PathDrawer 要操作的 Path
moveTo(x, y) : this
设置路径当前位置
moveBy(dx, dy) : this
设置路径当前位置(相对位置)
lineTo(x, y) : this
从当前位置绘制一条直线到指定的位置
lineBy(dx, dy) : this
从当前位置绘制一条直线到指定的位置(相对位置)
bezierTo(x1, y1, x2, y2, x, y) : this
绘制贝塞尔曲线
bezierBy(dx1, dy1, dx2, dy2, dx, dy) : this
绘制贝塞尔曲线(相对位置)
close() : this
闭合当前路径
Path
基类 : Shape
表示一个路径(闭合或不闭合)
Path() : Path
构造函数,创建一条空路径
Path(string data): Path
构造函数,用指定的路径数据创建路径
getPathData() : string
获得路径的数据表示
setPathData(string data) : this
设置路径的数据。为了防止派生的图形不被非法修改,有些子类可能会保护改方法不被调用,或者使调用无效。实例化Path能保证该方法的有效性。
getDrawer() : PathDrawer
获得路径数据绘制工具,用于构建或更新路径。注意,闭合的路径调用该方法时会返回 null。
isClosed() : bool
判断当前路径是否已闭合
stroke(Pen pen) : this
用指定的画笔描边路径
fill(Brush brush) : this
用指定的画刷填充路径
Group
基类 : Shape
实现 : Container
将多个图形组合成新的图形,请参照 Container
Group()
构造函数创建一个空的组
Rect
基类 : Path
表示一个矩形
Rect(float width, float height, float x, float y) : Rect
构造函数,给定矩形的大小和位置
setWidth(float width) : this
设置矩形的宽度
setHeight(float height) : this
设置矩形的高度
setSize(float width, float height)
设置矩形的大小
getRadius() : float
获得矩形的圆角大小
setRadius(float radius) : this
设置矩形的圆角大小
getPosition() : Point
获取矩形位置的坐标点
setPosition( float x, float y ) : this
设置矩形的位置坐标
getPositionX() : float
获取矩形在X轴上的位置
getPositionY() : float
获取矩形在Y轴上的位置
setPositionX( float x ) : this
设置矩形在X轴上的位置
setPositionY( float y ) : this
设置矩形在Y轴上的位置
Ellipse
基类 : Path
表示一个椭圆
Ellipse(float radiusX, float radiusY)
快捷构造椭圆,给定椭圆的大小
Ellipse(float radiusX, float radiusY, float x, float y)
快速构造椭圆,给定椭圆的位置和大小
getRadius() : Point
获得椭圆的半径
getRadiusX() : float
获得椭圆在 x 轴上的半径
getRadiusY() : float
获得椭圆在 y 轴上的半径
getCenter() : Point
获得椭圆圆心的位置
getCenterX() : float
获得椭圆圆心位置的 x 坐标
getCenterY() : float
获得椭圆圆心位置的 y 坐标
setRadius(float radiusX, float radiusY) : this
设置椭圆的半径
setRadiusX(float radiusX) : this
设置椭圆在 x 轴上的半径
setRadiusY(float radiusY) : this
设置椭圆在 y 轴上的半径
setCenter(float x, float y) : this
设置椭圆圆心的位置
setCenterX(float x) : this
设置椭圆圆心位置的 x 坐标
setCenterY(float y) : this
设置椭圆圆心位置的 y 坐标
Polygon
基类 : Path
实现 : Container
表示一个多边形,其子元素表示其顶点序列
Polygon() : Polygon
构造函数,创建一个空多边形
Polygon(Array) : Polygon
用点序列来构造多边形
Line
基类 : Path
表示一条线段
Line(float x1, float y1, float x2, float y2)
快捷构造函数
setPoint1(float x, float y) : this
设置线段第一个端点的位置
getPoint1() : Point
获取线段第一个端点的位置
setPoint2(float x, float y) : this
设置线段第二个端点的位置
getPoint2() : Point
获取线段第二个端点的位置
Curve
基类 : Path
实现 : Container
表示一条曲线,其子元素表示其经过的点序列
Curve() : Curve
构造函数,初始化一条曲线
Curve(Array points) : Curve
快捷构造函数,给定曲线经过的点
Bezier(贝塞尔曲线)
基类 : Path
实现 : PointContainer
Bezier() : Bezier
构造函数,初始化一个空的贝塞尔曲线
Bezier( Array bezierPoints ) : Bezier
构造函数,初始化一个含有给定点集合的贝塞尔曲线
BezierPoint(贝塞尔上的点)
基类 : Class
BezierPoint( number x, number y ) : BezierPoint
构造函数, 根据提供的坐标初始化一个贝塞尔曲线上的点,该点初始是平滑的。 该点还未设置控制点坐标,不能把未设置控制点的BezierPoint添加到bezier曲线上。
BezierPoint( number x, number y, boolean isSmooth ) : BezierPoint
构造函数, 根据提供的坐标初始化一个贝塞尔曲线上的点,可以根据参数isSmooth决定是否平滑。 该点还未设置控制点坐标,不能把未设置控制点的BezierPoint添加到bezier曲线上。
setForward( number x, number y ) : this
设置前置控制点位置,如果当前点BezierPoint对象是平滑的, 则对前置点的改变会引起后置点的变化, 如果不平滑, 则不会引起这种变化。
setBackward( number x, number y ) : this
设置后置控制点位置,如果当前点BezierPoint对象是平滑的, 则对后置点的改变会引起前置点的变化, 如果不平滑, 则不会引起这种变化。
setSmooth( boolean isSmooth ) : this
设置当前BezierPoint对象是否平滑, 更改平滑的BezierPoint对象的控制点,会引起另一个控制点的变化, 反之,则不会引起变化。
setPoint( number x, number y ) : this
更改当前BezierPoint对象的顶点坐标, 该方法会同时移动当前BezierPoint对象的控制点位置。
Polyline
基类 : Path
实现 : Container
表示一条折线,其子元素是其顶点
Polyline() : Polygon
构造函数,创建空折线
Polyline(Array) : Polygon
用点序列来创建折线
Image
基类 : Shape
用于显示图片
Image(string url, width, height, x, y) : Image
根据提供的url和宽度、高度、x坐标,y坐标信息初始化一个图片对象
Image(string url, width, height) : Image
根据提供的url和宽度、高度信息初始化一个图片对象, 此图片的所处位置的x和y坐标都为0
setUrl(string url) : this
设置图片的 URL
setWidth( number width ) : this
设置图片宽度
setHeight( number height ) : this
设置图片高度
setX( number x ) : this
设置图片位置X坐标
setY( number y ) : this
设置图片位置Y坐标
getUrl() : string
获取图片的 URL,如果未设置图标, 则返回null
getWdith() : number
获取图片的宽度
getHeight() : number
获取图片的高度
getX() : number
获取图片的X坐标
getY() : number
获取图片的Y坐标
Text
基类 : Shape
实现 : Container
用于显示文字,其子元素为单独控制样式的 TextSpan
Text() : Text
创建一个空的文本
Text(string content) : Text
创建一个具有指定内容的文本
setContent(string content) : this
设置文本内容
getContent() : string
获得文本内容
appendContent( string content ) : Text
向文本内追加内容
setX(float x) : this ###
设置文本显示的位置的 x 坐标
setY(float y) : this
设置文本显示的位置的 y 坐标
getX() : float
获得文本显示位置的 x 坐标
getY() : float
获得文本显示位置的 y 坐标
*setPath(string pathData) :
设置文本的排列路径
TextSpan
基类 : Class
实现 : Styled
内联文本块
TextSpan(string content)
创建具有指定内容的文本框
setContent(string content)
设置文本块内容
getContent() : string
获得文本块内容
Color
基类 : Class
实现 : Serializable
表示一个颜色
Color() : this
得到 RGBA(0, 0, 0, 0) 的颜色
Color(string colorString)
用指定的 Color String 来创建颜色,支持常用
set(string name, float value) : this
设置当前颜色的某一个分量值,支持:
- r/red - RGB 颜色表示中的红色分量(取值0-255)
- g/green - RGB 颜色表示中的绿色分量(取值0-255)
- b/blue - RGB 颜色表示中的蓝色分量(取值0-255)
- h/hue - HSL 颜色表示中的色环角度(取值0-360)
- s/saturation - HSL 颜色表示中的饱和度(取值0-100)
- l/lightness - HSL 颜色表示中的亮度(取值0-100)
- a/alpha - 颜色的透明度(取值0 - 1)
设置 RGB 的分量会影响 HSL 的分量,反之亦然。
increase(string name, float inc)
增加当前颜色某个分值的值,如果溢出,会设置为对应的最大值
decrease(string name, float dsc)
减少当前颜色某个分值的值,如果溢出,会这职位对应的最小值
get(string name) : this
获取当前颜色的某一个分量值,支持的名称和set方法中规定一致
toRGB() : string
获得当前颜色的 RGB 表示: RGB(r, g, b),这种表示形式会丢失颜色的透明度信息
toHEX() : string
获得当前颜色的 HEX 表示: #RRGGBB,这种表示形式会丢失颜色的透明度信息
toHSL() : string
获得当前颜色的 HSL 表示: HSL(h, s%, l%),这种表示形式会丢失颜色的透明度信息
toRGBA() : string
获得当前颜色的 RGBA 表示: RGBA(r, g, b, a)
toHSLA() : string
获得当前颜色的 HSLA 表示:HSLA(h, s%, l%, a)
Brush
基类 : Class
抽象类
实现 : Serializable
表示一个画刷,用于填充 Path
getType() : string
获取画刷的类型
ColorBrush
基类: Brush
表示一个用纯色填充的画刷
ColorBursh()
构造函数,初始化一个纯色填充的画刷
ColorBrush(Color color) : this
构造函数,使用指定的颜色初始化画刷
setColor(Color color) : this
设置画刷颜色
getColor() : Color
获取画刷的颜色
LinearGradientBrush
基类 : Brush
表示用线性渐变填充的画刷。线性渐变的方向和大小由两个值决定。起始位置和结束,使用(px, py)来表示,取值0 - 1,表示渐变的开始和结束位置在图形的指定比例处。默认是 (0,0) 和 (1, 0)
渐变的颜色通过添加 ColorStop 来指定
Paper.createLinearGradientBrush()
从 paper 创建一个线性渐变的画刷
LinearGradientBrush(Paper paper) : this
初始化线性渐变画刷
setStartPosition(float px, float py)
设置渐变起始位置
setEndPosition(float px, float py)
设置渐变结束位置
getStartPosition() : Point
获取渐变起始位置
getEndPosition() : Point
获取渐变结束位置
addStop(float offset, Color color) : this
设置指定位置上的颜色,offset取值范围为 0 - 1,表示在渐变区间的比例的颜色
RadialGradientBrush
基类 : Brush
表示用径向渐变填充的画刷。径向渐变用三个值表示。中心位置和半径表示其范围,都用 0 - 1 作为值域。
焦点表示径向渐变的起始位置。中心位置的默认值为(0.5, 0.5), 焦点位置的默认值为(0.5, 0.5),半径默认值为0.5。
Paper.createRadialGradientBrush() : Brush
RadialGradientBrush() : this
初始化一个径向填充的画刷
setCenter(float cx, float cy)
设置径向渐变的中心位置
getCenter() : Point
获得径向渐变的中心位置
setFocal(float fx, float fy) : this
设置径向渐变的焦点位置
getFocal() : Point
获取径向渐变的焦点位置
setRadius( float r )
设置径向渐变的半径
getRadius() : float
获取径向渐变的半径
addStop(float offset, Color color) : this
设置渐变指定区间位置的颜色,取值范围 0 - 1
PatternBrush
基类 : Brush
实现 : Container
表示用图形填充的画刷
Paper.createPatternBrush() : PatternBrush
从 paper 创建一个 PatternBrush
PatternBrush(Paper paper) : this
初始化一个图形填充画刷
Pen
基类 : Class
实现 : Serializable
根据画笔设置当前图形边框样式
getColor() : Color
获取当前图形画笔色值
getWidth() : float
获取当前图形画笔粗细
setColor(Color color) : this
设置当前图形画笔颜色
setWidth(float width) : this
设置当前图形画笔的粗细
setLineCap(string linecap)
设置画笔描边时,端点的样式,取值有:butt、round、suqare
setLineJoin(string linejoin)
设置描边转折点的样式,取值有:miter、round、bevel
getLineCap() : string
获得画笔当前设置的描边端点样式
getLineJoin() : string
获得画笔当前设置的描边转折点样式
getOpacity() : number
获取当前画笔的透明度值
setOpacity( number opacity ): this
设置当前画笔的透明度
getDashArray() : Array
获取虚线的段长和间隔的定义数组,如果为空,则绘制实线
setDashArray(Array) : this
设置虚线的段长河间隔的定义数组
Filter
基类 : Class
实现 : Serializable
表示一个应用到图形上的滤镜
BlurFilter
基类 : Filter
设置图形滤镜为模糊
BlurFilter(int blur) : this
创建一个滤镜
setBlurFilter(int blur):this
设置当前图形滤镜模糊值
getBlurFilter():this
获取当前图形滤镜模糊值
ShadowFilter
inherit: Class
implement: Kity.Brush
设置图形滤镜为阴影
getShadowFilterOffset():this
获取当前图形滤镜偏移
setShadowFilterOffset(int x,int y):this
设置当前图形滤镜偏移
getShadowFilterBlur():this
获取当前图形滤镜模糊值
setShadowFilterBlur(int blur):this
设置当前图形滤镜模糊值
getShadowFilterBlur():this
设置当前图形滤镜模糊值
setShadowFilteColor(string color):this
设置当前图形滤镜颜色
Matrix
基类 : Class
实现 : Serializable
图形变换
translate(int x, int y) : this
添加一个偏移数据到矩阵上
rotate(int degress) : this
添加一个旋转数据到矩阵上
scale(float sx, float sy) : this
增加缩放数据到矩阵上,只给一个参数则等比缩放
skew(float sx, float sy) : this
添加倾斜数据到矩阵上,只给一个参数等比倾斜
getMatrix() : Plain
获取矩阵的数据: { a: float, b: float, c: ...}
setMatrix(float a, float b, float c, float d, float e, float f): this
设置矩阵的数据
mergeMatrix(Matrix another) : Matrix
合并另一个转换矩阵,返回合并后的矩阵
Use(Shape origin)
基类:Shape
使用指定的图形,进行个性化设置。可以进行的设置:变换(Transform)、填充(Fill)、描边(Stroke)、样式(Style)。
Clip
基类:Shape
拓展:ShapeContainer
创建图形剪辑。只显示图形剪辑闭合的路径部分。
Clip.clip(Shape shape)
把剪辑作用在指定的图形上
Shape.clipWith(Clip clip)
使用指定的剪辑作用在当前图形上
Mask
基类:Shape
拓展:ShapeContainer
创建图形蒙版,蒙版颜色亮度为 100 的部分,被蒙版的图形能被完全显示,而蒙版颜色亮度为 0 的部分,被蒙版的图形透明度为 0。
Mask.mask(Shape shape) : this
把蒙版作用在指定的图形上
shape.maskWith(Mask mask) : this
使用指定的蒙版作用在当前图形
Clipe 和 Mask 的差别:https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Clipping_and_masking