常规处理:

    private createGameScene():void {
var shp = new egret.Shape();
shp.graphics.beginFill(0xff0000, 1);
shp.graphics.drawRect(0, 0, 480, 800);
shp.graphics.endFill();
this.addChild(shp); var label:egret.TextField = new egret.TextField();
label.text = "实例文本"; //设置文本内容
label.width = 480;
label.height = 800;
label.size = 80; //设置字号大小
label.textColor = 0x00ff00; //设置字体颜色
label.fontFamily = "KaiTi"; //设置字体样式
label.textAlign = egret.HorizontalAlign.RIGHT; //水平右对齐,相对于 textField 控件自身的 width 与 height
label.verticalAlign = egret.VerticalAlign.TOP; //垂直上对齐
label.strokeColor = 0x0000ff; //描边颜色
label.stroke = 2; //描边宽度
this.addChild(label);
}

常用字体表:

中文名称 font-family
宋体 SimSun
黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
仿宋_GB2312 FangSong_GB2312
楷体_GB2312 KaiTi_GB2312

自定义字体:

  需要改成自定义的字体,需要设置对应的 default_fontFamily 的路径。路径开始不加 ‘/‘则从项目的主目录开始,加了则从系统的目录中去查找。

  由于在发布的时候 resource 文件夹下的文件名会被序列化,建议不要放到 resource 下面,单独放到一个 fonts 文件夹下面并且在发布的时候手动拷贝到 native 工程中。

  示例:

  

JSON 样式配置:

  textField.textFlow 接受 egret.ITextElement 数组

interface ITextElement
{
text:string;
style?:ITextStyle;
}
    private createGameScene():void {
var tx:egret.TextField = new egret.TextField;
tx.width = 400;
tx.x = 10;
tx.y = 10;
tx.textColor = 0;
tx.size = 50;
tx.fontFamily = "微软雅黑";
tx.textAlign = egret.HorizontalAlign.CENTER;
tx.textFlow = <Array<egret.ITextElement>>[ //转换成元素为 egret.ITextElement 的数组
{text: "妈妈再也不用担心我在", style: {"size": 12}} //ts 语法看久了容易混成 C#.. 对象怎么这样? 才想起是 ts 脚本
, {text: "Egret", style: {"textColor": 0x336699, "size": 60, "strokeColor": 0x6699cc, "stroke": 2}}
, {text: "里说一句话不能包含各种", style: {"fontFamily": "楷体"}}
, {text: "五", style: {"textColor": 0xff0000}}
, {text: "彩", style: {"textColor": 0x00ff00}}
, {text: "缤", style: {"textColor": 0xf000f0}}
, {text: "纷", style: {"textColor": 0x00ffff}}
, {text: "、\n"}
, {text: "大", style: {"size": 36}}
, {text: "小", style: {"size": 6}}
, {text: "不", style: {"size": 16}}
, {text: "一", style: {"size": 24}}
, {text: "、"}
, {text: "格", style: {"italic": true, "textColor": 0x00ff00}}
, {text: "式", style: {"size": 16, "textColor": 0xf000f0}}
, {text: "各", style: {"italic": true, "textColor": 0xf06f00}}
, {text: "样", style: {"fontFamily": "楷体"}}
, {text: ""}
, {text: "的文字了!"}
];
this.addChild( tx );
}

文本超链接:

    private createGameScene():void {
var tx:egret.TextField = new egret.TextField;
tx.textFlow = <Array<egret.ITextElement>>[
{ text:"点击响应", style:{"href":"event:has been triggered.", "size":80}}, //href 可以指定 url 或者是 event,默认为 url
{ text:"\n点击无响应", style:{"size":80}}
]; tx.touchEnabled = true;
tx.addEventListener(egret.TextEvent.LINK, (evt:egret.TextEvent) => {
console.log(evt.text);
}, this); tx.x = 10;
tx.y = 10;
this.addChild(tx);
}

文本输入:

    //白色输入框背景板
private layTxBg(tx:egret.TextField)
{
var shp:egret.Shape = new egret.Shape();
shp.graphics.beginFill(0xffffff);
shp.graphics.drawRect(tx.x, tx.y, tx.width, tx.height);
shp.graphics.endFill();
this.addChild(shp);
} /**
* 创建游戏场景
* Create a game scene
*/
private createGameScene():void
{
//绘制绿色背景板
var shp: egret.Shape = new egret.Shape();
shp.graphics.beginFill(0x00ff00);
shp.graphics.drawRect(0,0,640,960);
shp.graphics.endFill();
this.addChild(shp); //黑字输入框
var txInput:egret.TextField = new egret.TextField();
txInput.type = egret.TextFieldType.INPUT; //设置文本样式-输入框
txInput.width = 200;
txInput.height = 50;
txInput.x = 50;
txInput.y = 50;
txInput.textColor = 0x000000; this.layTxBg(txInput);
this.addChild(txInput); var button = new egret.Shape();
button.graphics.beginFill(0x00cc00);
button.graphics.drawRect(50, 200, 100, 40);
button.graphics.endFill();
button.x = 50;
button.y = 200;
button.touchEnabled = true;
button.addEventListener(egret.TouchEvent.TOUCH_BEGIN, (e) => { //第一次触摸控件时,将焦点设置在文本输入控件上
txInput.setFocus();
}, this);
this.addChild(button);
}

通过设置输入样式可以控制弹出的键盘类型:

egret.TextFieldInputType.TEXT;         //九宫格输入
egret.TextFieldInputType.PASSWORD; //英文键盘
egret.TextFieldInputType.TEL; //数字键盘

Egret 文本处理的更多相关文章

  1. Egret引擎随学随机

    1.纹理集实际上就是将一些零碎的小图放到一张大图当中.游戏中也经常使用到纹理集.使用纹理集的好处很多,我们通过将大量的图片拼合为一张图片从而减少网络请求,原先加载数次的图片资源现在加载一次即可.同时, ...

  2. 【咸鱼教程】Egret中可长按复制的文本(例如复制优惠码)

    一 实际效果二 实现原理三 源码下载 在egret中实现长按复制文本效果,一般用于复制优惠码什么的. 一 实际效果         二 实现原理 在egret的游戏元素都是绘制在canvas上的,我们 ...

  3. egret GUI 文本混排+文本链接的聊天解决方案【取巧法】

    ui方面: <e:Scroller verticalScrollPolicy="auto" width="468" height="620&qu ...

  4. EUI 自动滚动的聊天文本

    一 自动滚动的聊天文本 当文本输入改变时,将scrollV值等于maxScrollV值. private scrollLabel:eui.Label; egret.Tween.).call(()=&g ...

  5. Egret白鹭H5小游戏开发入门(三)

    前言: 在上一篇文章中着重介绍了H5小游戏开发的起步阶段,如Wing面板的使用,素材的处理,类的说明等等,那么今天主要是涉及到场景的创建,loading的修改等等的代码编写. 对于这一节,我在讲解的过 ...

  6. Html5 Egret游戏开发 成语大挑战(六)游戏界面构建和设计

    本篇将主要讲解游戏界面的构建和设计,会应用到egret.eui的自定义组件,可以很直观的构建一个游戏整体,这里我们仍然只需要使用EgretWing就可以达到目的,本篇可能是篇幅最少的一个,但是涉及自定 ...

  7. Html5 Egret游戏开发 成语大挑战(三)开始界面

    本篇需要在前面的素材准备完毕,才可以开始,使用egret的eui结合代码编辑,快速完成基本的界面搭建,这里写的可能比较细,目的是减少大家对于其中一些操作疑问,我去掉了很多无用的步骤,以最精简的流程来完 ...

  8. Egret官方案例学习笔记

    1.资源记载方式 (1)Egret引擎是2.0.5. (2)resource/resource.json文件是: { "resources": [ { "name&quo ...

  9. Egret 矢量绘图、遮罩、碰撞检测

    矢量绘图: 1. 为矢量绘图绘制外边 - graphics.lineStype() private createGameScene():void { console.log("Runtime ...

随机推荐

  1. HTML全局属性

    属性 描述 accesskey 规定激活元素的快捷键. class 规定元素的一个或多个类名(引用样式表中的类). contenteditable 规定元素内容是否可编辑. contextmenu 规 ...

  2. 9个Java初始化和回收的面试题

    1.Java中是如何区分重载方法的? 通过重载方法的参数类型和顺序来进行区分的. 注意:若参数类型和顺序均相同时,不管参数名是否相同,编译器均会报错,提示方法已经被定义.且不能根据返回值类型来区分,如 ...

  3. 【每日一linux命令8】添加新的工作组(groupadd)

    groupadd (字意add group)增加一个新的工作组. 语法:groupadd 选项 用户组名 选项: -g 指定新建工作组的ID -r 创建系统工作组,系统工作组的ID小于500 -k 覆 ...

  4. bootstrap 仿实例

    bootstrap实现一个网页 html文件 <!DOCTYPE html> <html> <head lang="en"> <meta ...

  5. Rocketmq整体分析

    之前本人在实际的生产环境中,使用过activemq和rabbitmq消息队列,在使用过程中出现一些难以解决的问题,本文通过产品选型.网络架构和核心特性分析了rocketmq的优势和特性. 产品选型 我 ...

  6. Android下 scrollview的滚动停止事件的监听方法

    使用递归调用的方法,每隔5毫秒检查一下是否已经停止,如果已经停止,就拿到事件啦! 不扯蛋,直接上代码. scrollContent就是我的scrollview. [代码]java代码: ? 1 2 3 ...

  7. 关于C++函数思考1(缺省的六大函数)

    我们知道大神们在设计C++时候就给C++有六个默认的函数,所谓默认就是,无需我们这些程序猿们动手去写,仅仅要你在将类实例化.即创建一个对象,在利用对象进行数据操作时候,就会编译器自己主动调用默认的函数 ...

  8. GPS定位

    User Location(用户定位): 1.User Location能做什么? 获取用户位置.追踪用户的移动: 2.User Location关键API? Location Manager:用于管 ...

  9. [置顶] poj1416数字切割解题报告

    题意:有一段纸片,就是一个不超过7位数的整数,现在给定你一个目标值 aim ,让你去选择把纸片切成几段,然后这个几段的和值 最接近 aim 且不超过 aim, 分析: 对于这个纸段,比如一个 四位数的 ...

  10. linux 调试

    strace gdb tcpdump valgrind perf