2012-03-22 7 views
2

Fabric.jsに関連付けられているキャンバスの外にCufonのライブラリを使用しようとすると、ここで問題が発生します。私は使用するフォントを表示する私のアプリケーションでテキストフォントセレクタを作ろうとしています。セレクタは、フォントのサンプルとしてフォント名を表示します(Photoshopなど)。だから、サンプル名を作るために、私はCufonを使ってフォントスタイルを置き換えようとしていますが、Fabric.jsはキャンバスの外で使うことはできません。 Fabric.jsは、Cufonがキャンバス内で置き換えるテキストを表示します。誰かがこれを解決する方法を知っていますか?ありがとう。Fabric.jsに関連付けられたキャンバスの外側にCufonを使用

答えて

1

Fabf.jsの外側にCufonを使用する方法が見つかりましたが、実際には汚れたハックです。

まず、githubから別のcufon.jsをページに追加しました。それから私はエディタでそれを開き、 'Cufon'を 'CufonBase'に自動変更しました。

私はCufon、およびCufonBaseのための2回それを呼び出すregisterFontにwraper機能を、書いた:これは、フォントをロードしてもCufonBase.registerFontを呼び出しCufonの基本メソッドを上書き

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); 

ので、あなたあなたのフォントjsを変更する必要はありません。

そして、あなたは呼び出すことができます。

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

そしてそれは私のために動作します。

関連する問題