Commit 7b0befe2 authored by wjf's avatar wjf

2.0.34

parent 462a7f10
declare namespace FYGE{export const VERSION = "2.0.32";
declare namespace FYGE{export const VERSION = "2.0.34";
export const osType: "ios" | "android" | "pc";
......@@ -6665,15 +6665,11 @@ export class TextField extends Sprite {
get textHeight(): number;
private _textHeight;
/**
* 行间距
* @property lineSpacing
* @public
* @since 1.0.0
* @param {number} value
* 行高,不设置就是size的1.4倍
*/
set lineSpacing(value: number);
get lineSpacing(): number;
private _lineSpacing;
set lineHeight(value: number);
get lineHeight(): number;
private _lineHeight;
/**
* 文本类型,单行还是多行 single multi
* @property lineType
......@@ -6927,13 +6923,13 @@ export class InputText extends FloatDisplay {
*/
initInfo(text: string, color: string, align: string, size: number, font: string, textWidth: number, textHeight: number, lineHeight?: number, showBorder?: boolean): void;
/**
* @property lineSpacing
* @property lineHeight
* @public
* @since 2.0.0
* @param {number} value
*/
set lineSpacing(value: number);
get lineSpacing(): number;
set lineHeight(value: number);
get lineHeight(): number;
/**
* 设置文本是否为粗体
* @property bold
......
This diff is collapsed.
This diff is collapsed.
export const VERSION = "2.0.32";
export const VERSION = "2.0.34";
export const osType: "ios" | "android" | "pc";
......@@ -6665,15 +6665,11 @@ export class TextField extends Sprite {
get textHeight(): number;
private _textHeight;
/**
* 行间距
* @property lineSpacing
* @public
* @since 1.0.0
* @param {number} value
* 行高,不设置就是size的1.4倍
*/
set lineSpacing(value: number);
get lineSpacing(): number;
private _lineSpacing;
set lineHeight(value: number);
get lineHeight(): number;
private _lineHeight;
/**
* 文本类型,单行还是多行 single multi
* @property lineType
......@@ -6927,13 +6923,13 @@ export class InputText extends FloatDisplay {
*/
initInfo(text: string, color: string, align: string, size: number, font: string, textWidth: number, textHeight: number, lineHeight?: number, showBorder?: boolean): void;
/**
* @property lineSpacing
* @property lineHeight
* @public
* @since 2.0.0
* @param {number} value
*/
set lineSpacing(value: number);
get lineSpacing(): number;
set lineHeight(value: number);
get lineHeight(): number;
/**
* 设置文本是否为粗体
* @property bold
......
{
"name": "fyge",
"version": "2.0.33",
"version": "2.0.34",
"description": "canvas渲染引擎",
"main": "./build/fyge.min.js",
"types": "./build/types.d.ts",
......
......@@ -410,6 +410,9 @@
2.0.33 Sprite的texture的set方法里加判断,destroyed为true也return;
2.0.34 InputText的lineSpacing改成lineHeight,原先就是lineHeight
删除TextField的lineSpacing,新增lineHeight
大尺寸纹理首次传gpu使用时会掉帧,越大耗时越多。考虑如何处理
现在不改,索引数据过大时得用Uint32Array,同时开扩展gl.getExtension( "OES_element_index_uint" )和drawElements改参数类型为gl.UNSIGNED_INT
......
......@@ -7,7 +7,7 @@
* @name VERSION
* @type {string}
*/
export const VERSION = "2.0.33";
export const VERSION = "2.0.34";
/**
......
......@@ -134,15 +134,15 @@ export class InputText extends FloatDisplay {
}
/**
* @property lineSpacing
* @property lineHeight
* @public
* @since 2.0.0
* @param {number} value
*/
public set lineSpacing(value: number) {
public set lineHeight(value: number) {
this.htmlElement.style.lineHeight = value + "px";
}
public get lineSpacing(): number {
public get lineHeight(): number {
return parseInt(this.htmlElement.style.lineHeight);
}
/**
......
......@@ -182,22 +182,36 @@ export class TextField extends Sprite {
private _textHeight: number = 0;
/**
* 行间距
* @property lineSpacing
* @public
* @since 1.0.0
* @param {number} value
* 行高,不设置就是size的1.4倍
*/
public set lineSpacing(value: number) {
if (this._lineSpacing != value) {
this._lineSpacing = value;
set lineHeight(value: number) {
if (this._lineHeight != value) {
this._lineHeight = value;
this.dirty = true;
};
}
public get lineSpacing(): number {
return this._lineSpacing;
get lineHeight(): number {
return this._lineHeight || Math.round(this.size * 1.4);
}
private _lineSpacing: number = 14;
private _lineHeight: number;
// /**
// * 行间距
// * @property lineSpacing
// * @public
// * @since 1.0.0
// * @param {number} value
// */
// public set lineSpacing(value: number) {
// if (this._lineSpacing != value) {
// this._lineSpacing = value;
// this.dirty = true;
// };
// }
// public get lineSpacing(): number {
// return this._lineSpacing;
// }
// private _lineSpacing: number = 14;
/**
* 文本类型,单行还是多行 single multi
......@@ -571,8 +585,8 @@ export class TextField extends Sprite {
realLines[realLines.length] = lineStr;
}
}
// let maxH = lineH * realLines.length;
var trueHeight: number = s.size * realLines.length + s._lineSpacing * (realLines.length - 1);
let lineH = this.lineHeight;
var trueHeight: number = lineH * realLines.length;
let maxH = s._textHeight || trueHeight;
let maxW = textWidth;
let tx = 0;
......@@ -596,7 +610,7 @@ export class TextField extends Sprite {
}
ctx.setTransform(1, 0, 0, 1, tx + padding, padding/* - 10*/);
s._prepContext(ctx);
let lineH = s._lineSpacing + s.size;
// let lineH = s._lineSpacing + s.size;
//如果有_textHeight,就需要应用竖直对齐
var upY: number = 0;
if (s._textHeight) {
......@@ -610,15 +624,16 @@ export class TextField extends Sprite {
//
getEnv() == "tb" && (upY -= 4);
for (let i = 0; i < realLines.length; i++) {
let oy = (lineH - s.size) / 2;
let ox = 0;
//@ts-ignore 现在貌似小程序的textAlign有点问题,如果修复了再说
// if (my) ox = - tx;//移回去,已经修复,注释掉吧
if (s.stroke) {
ctx.strokeStyle = s.strokeColor;
ctx.lineWidth = s.stroke * 2;
ctx.strokeText(realLines[i], ox, upY + i * lineH/*, maxW*/);
ctx.strokeText(realLines[i], ox, upY + i * lineH + oy/*, maxW*/);
}
ctx.fillText(realLines[i], ox, upY + i * lineH/*, maxW*/);//考虑去掉这个maxW
ctx.fillText(realLines[i], ox, upY + i * lineH + oy/*, maxW*/);//考虑去掉这个maxW
}
//offset用_anchorTexture代替
s.offsetX = -padding;
......@@ -628,6 +643,7 @@ export class TextField extends Sprite {
// if (osType == "ios") {
s.texture.update();
s._onTextureUpdate();
// document.body.appendChild(s.canvas)
// } else {
// var imgData = ctx.getImageData(0, 0, canWidth, canHeight)
// var data = {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment