Использование Cufon вне холста, связанного с Fabric.js - PullRequest
2 голосов
/ 22 марта 2012

У меня проблема здесь, когда я пытаюсь использовать Cufon lib вне холста, связанного с Fabric.js. Я пытаюсь сделать селектор шрифта текста в моем приложении, который покажет шрифты, доступные для использования. Селектор отобразит имя шрифта в качестве образца шрифта (например, Photoshop и т. Д.). Итак, для построения имен сэмплов я пытаюсь использовать Cufon для замены стиля шрифта, но Fabric.js не позволяет использовать его вне холста. Fabric.js показывает текст, который Cufon заменяет внутри холста. Кто-то знает, как решить эту проблему? Спасибо.

1 Ответ

1 голос
/ 23 мая 2012

Я нашел способ использовать Cufon за пределами fabric.js, но это действительно грязный хак.

Сначала я добавил еще один cufon.js на страницу из github. Затем я открыл его в редакторе и автоматически переименовал «Cufon» в «CufonBase».

Я написал функцию-обертку для registerFont, которая дважды вызывает ее для Cufon и CufonBase:

 var makeWrap = function(fn1, fn2){
  return function(){
    try{
      fn2.apply(this, arguments);
      return fn1.apply(this, arguments);
    }catch(ex){
      ErrorHandler.Exception(ex);
    }
  };
};

Cufon.registerFont = makeWrap(Cufon.registerFont, CufonBase.registerFont);

Это перезаписывает базовый метод Cufon, который загружает шрифт и вызывает также CufonBase.registerFont, поэтому вам не нужно изменять шрифт js.

И тогда вы можете позвонить:

CufonBase.replace('h1', {fontFamily: 'font_name'});

И у меня это работает.

...