2016-02-19 88 views
0

我需要为项目使用EaselJS并导入一些字体。文本文件导入在EaselJS中不起作用

我想使用谷歌字体代替,但你需要WiFi,我的项目不应该需要WiFi。

我试图导入的字体在CSS像所谓

@font-face { 

     font-family: Sample; 
     src: url(font/Organo.ttf); 

    } 

然后我做了使用EaselJS-

一些文本
var txt = new createjs.Text(); 
    txt.x = txt.y = 500; 
    txt.font = "96px Sample"; 
    txt.color = "#FF7700"; 
    txt.text = "Hello World!"; 

    stage.addChild(txt); 
    stage.update(); 

有显示在控制台中了没有错误,但字体看起来像默认的Times New Roman。然而,它应该是这样的 - enter image description here

我已经尝试过使用普通的HTML元素,并且它在导入时似乎工作的很好。

是否有任何其他方式可以在EaselJS中导入字体? This是我发现的唯一的其他EaselJS字体教程。为什么这个字体不起作用?

回答

0

这看起来像它应该工作的罚款。

确保在加载字体后更新了阶段。在您的示例代码中,您在创建文本后更新舞台一次。

以下是从另一个域加载字体的快速示例。请注意,在显示实际字体之前,它会先用默认字体闪烁。

http://jsfiddle.net/bt0hk5wq/

我添加了一个勾听众的阶段,所以它会不断更新。

createjs.Ticker.on("tick", stage); 

有对字体加载在PreloadJS做了一些工作,但它仍然是一个正在进行中的分支:

FontLoader支持仍处于测试阶段,但希望能够整合int o官方消息很快(2016年3月?)

希望有所帮助!

+0

@ Lanny-非常好,非常感谢。但是,移动设备的延迟时间很长,我不希望这种情况发生。我设置了一个'setTimeout'函数,然后粘贴上面的代码,但同样的事情发生了。有没有办法做到这一点没有这种延迟? – Ron

+0

延迟是字体加载和初始化。一旦准备好了,它就会画出来 – Lanny

0

字体是否存储在本地?如果是这样尝试

@font-face { 

     font-family: Sample; 
     src: local("Organo"); 

    } 

否则,尝试一些报价

@font-face { 

    font-family: Sample; 
    src: url("font/Organo.ttf"); 

}