Cocos2d-JS中的cc.LabelTTF

cc.LabelTTF是使用系统中的字体,它是最简单的标签类。cc.LabelTTF类图如下图所示,可以cc.LabelTTF继承了cc.Node类,具有cc.Node的基本特性。

LabelTTF类图

如果我们要展示如图所示的Hello World文字,我们可以使用cc.LabelTTF实现。

cc.LabelTTF实现的Hello World文字
cc.LabelTTF实现的Hello World文字主要代码如下:

var HelloWorldLayer = cc.Layer.extend({
    sprite:null,
    ctor:function () {
        //////////////////////////////
        // 1. super init first
        this._super();
			……
        var helloLabel = new cc.LabelTTF("Hello World", "Arial", 38); 					①
        helloLabel.x = size.width / 2;
        helloLabel.y = 0;

        this.addChild(helloLabel, 5);
	      ……
        return true;
    }
});

上述代码第①行是创建一个cc.LabelTTF对象,cc.LabelTTF类的构造函数定义如下:
ctor(text, fontName, fontSize, dimensions, hAlignment, vAlignment)
text参数是要显示的文字,fontSize参数是字体,它可以是系统字体名,例如本例中的Arial,也可以是自定义的字体文件,字体文件应该放在res文件夹或子文件夹中,如下图所示,我们的TTF字体文件是Marker Felt.ttf,使用Marker Felt.ttf字体的代码如下:
var helloLabel = new cc.LabelTTF("Hello World", "Marker Felt", 38);
Marker Felt是与Marker Felt.ttf字体文件对于的字体文件名,该名称是我们在src/resource.js文件中定义的,src/resource.js代码如下:

var g_resources = [
    //fonts
    {
        type: "font",													①
        name: "Marker Felt",												②
        srcs: ["res/fonts/Marker Felt.ttf"]										③
    }

];

g_resources数组变量是用来保存需要加载的资源集合,字体文件也是一种资源文件,也需要在场景启动时候加载,代码第①~③行是创建字体资源加载项目,其中第①行代码是指定加载项目的类型,第②行是字体文件名,这个名字是程序中使用的名字,我们上面的实例就使用了这个名字,第③行是字体文件的路径,一个字体可以能由多个字体文件构成,因此srcs配置项是一个数组。
注意  自定义的字体文件不能在JSB本地方式运行中正常显示,而系统字体(只要是运行的操作系统安装了该字体)可以在Web浏览器方式运行和JBS本地方式运行中正常显示。

TTF字体文件位置

参数dimensions标签内容大小,如果标签不能完全显示在指定的大小内,标签将被截掉部分,默认值为cc.size(0,0),它表示标签刚好显示在指定的大小内。参数hAlignment 表示标签在dimensions指定大小内水平对齐的方式,默认值是cc.TEXT_ALIGNMENT_LEFT,表示水平右对齐。参数vAlignment表示标签在dimensions指定大小内垂直对齐的方式,默认值是cc.VERTICAL_TEXT_ALIGNMENT_TOP,表示垂直顶对齐。

更多内容请关注最新Cocos图书《Cocos2d-x实战:JS卷——Cocos2d-JS开发》
本书交流讨论网站:http://www.cocoagame.net

欢迎加入Cocos2d-x技术讨论群:257760386

更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com

智捷课堂现推出Cocos会员,敬请关注:http://v.51work6.com/courseInfoRedirect.do?action=netDetialInfo&courseId=844465&categoryId=0

《Cocos2d-x实战 JS卷》现已上线,各大商店均已开售:

京东:http://item.jd.com/11659698.html

欢迎关注智捷iOS课堂微信公共平台,了解最新技术文章、图书、教程信息

时间: 2024-11-03 05:36:25

Cocos2d-JS中的cc.LabelTTF的相关文章

Cocos2d-JS中的cc.LabelAtlas

cc.LabelAtlas是图片集标签,其中的Atlas本意是"地图集"."图片集",这种标签显示的文字是从一个图片集中取出的,因此使用cc.LabelAtlas需要额外加载图片集文件.cc.LabelAtlas 比cc.LabelTTF快很多.cc.LabelAtlas 中的每个字符必须有固定的高度和宽度.cc.LabelAtlas类图如下图所示,cc.LabelAtlas间接地继承了cc.Node类,具有cc.Node的基本特性,它还直接继承了cc.AtlasN

关于在 Node.js 中引用模块,知道这些就够了

本文讲的是关于在 Node.js 中引用模块,知道这些就够了, Node 提供了两个核心模块来管理模块依赖: require 模块在全局范围内可用,不需要写 require('require'). module 模块同样在全局范围内可用,不需要写 require('module'). 你可以将 require 模块理解为命令,将 module 模块理解为所有引入模块的组织者. 在 Node 中引入一个模块其实并不是个多么复杂的概念. const config = require('/path/t

JS中关于事件处理函数名后面是否带括号的问题_javascript技巧

今天总结一个关于事件处理程序的小细节.首先回顾一下事件处理的一些概念. JS中的事件处理(事件绑定)就是让某种或某些事件触发某些活动.有两种常见的形式,分别是DOM Level 0 和DOM Level 2.这两种方式最大的区别就在于DOM 0级事件处理只能用于事件冒泡,而DOM 2级事件处理却可以通过设置第三个参数来分别支持事件冒泡和事件捕获. DOM 0级事件处理一般是直接把一个函数分配给一个事件处理程序,既可以在元素中直接分配一个事件处理程序,如方式一所示;也可以在脚本中把函数分配给事件处

js中与变量相关的一些知识

来补充一点上一篇文章 js变量初探 中漏掉的知识点: 1.变量的定义与声明中常见问题: (1)用var关键字声明的变量,未经初始化时,保存的是一个特殊的值-undefined,变量初始化仅仅是给变量赋一个值 (2)当使用var关键字声明了一个变量时,创建的这个变量是不可配置的,也就是说这个变量无法通过delete运算符删除:在严格模式下,使用delete运算符删除var关键字声明的变量会导致SyntaxError. (3)省略var关键字会导致定义一个全局变量,但是不推荐这种做法.在严格模式下,

在js中加html注释的作用?

问题描述 在js中加html注释的作用? <!-- function getStringLength(str){ var num=0; if (str!=""){ var i; var s; for(i=0;i<str.length;i++){ s=str.charCodeAt(i); if(s-128<0) num=num+1; else num=num+2; } } return num; } //--> 解决方案 就是说这些代码本来应该删除,但是这个程序员

js中的函数function

    js的function对象在调用过程中具有一个arguments的属性,它是由脚本解释器创建的(这也是arguments创建的唯一方式).arguments属性可以看作是一个Array对象,它有length属性,可以通过序号访问每一个参数,而且通过argument的callee属性可以获取对正在执行的Function对象的引用.如下: function factorial(n){ if(n<=n){ return 1; }else{ return n*arguments.callee(n

javascript-js中的java代码如何访问js中方法的参数??见图

问题描述 js中的java代码如何访问js中方法的参数??见图 如何让1处的值传到2处这里?? 解决方案 需要用ajax提交你的index到服务器,服务器端无法直接获取客户端js的变量值 <script src=""http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js""></script><script type=""text/javascript&qu

js中回调函数问题,程序进不了回调函数

问题描述 js中回调函数问题,程序进不了回调函数 我这段代码的回调函数哪出错,请各位大神指教 function req(){ createRequest(); var zipcode=document.getElementById(""zipcode"").value; var url=""b.jsp?zipcode="" + escape(zipcode); request.open(""POST&quo

一眼毁三观:JS中令人发指的valueOf方法

剧透:文章末尾有两个小问题待解答,路过的兄弟请百忙之中抽空看下--- 彭老湿近期月报里提到了valueOf方法,兴致来了翻了下ECMA5里关于valueOf方法的介绍,如下: 15.2.4.4 Object.prototype.valueOf ( ) When the valueOf method is called, the following steps are taken: 1. Let O be the result of calling ToObject passing the thi