2016-07-11 5 views
0

Textboxを拡張するカスタムクラスを作成していますが、yスケールを有効にする必要があります。 fontSizeではなく要素の幅/高さを変更するには、yスケールがxスケールと同じ動作をしていなければなりません。Textbox enable scaleY

しかし、私は既にテキストボックスのコード全体をチェックしており、この振る舞いを持つために何を上書きするかを見つけることができません。

https://fiddle.jshell.net/filiperoberto/zLz6cy2L/3/

答えて

0

を私は私のカスタム要素にその機能を拡張し、テキストボックスのスケールの動作を変更しfabricjsでtextbox_behavior.mixin.jsの機能が見つかりました:ここ

は私がやっているのいくつかのコードです期待される行動をとること。それでもいくつかの作業を必要とします*

(function(){ 
    var setObjectScaleOverridden = fabric.Canvas.prototype._setObjectScale; 

    fabric.Canvas.prototype._setObjectScale = function(localMouse, transform,lockScalingX, lockScalingY, by, lockScalingFlip, _dim) { 

     var t = transform.target; 
     if (t instanceof fabric.FeedText) { 
      var w = t.width * ((localMouse.x/transform.scaleX)/(t.width + t.strokeWidth)); 
      var h = t.height * ((localMouse.y/transform.scaleY)/(t.height + t.strokeWidth)); 
      if (w >= t.getMinWidth() && h >= t.minHeight) { 
       t.set('width', w); 
       t.set('height',h); 
       return true; 
      } 
     } 
     else { 
      return setObjectScaleOverridden.call(fabric.Canvas.prototype, localMouse, transform, 
       lockScalingX, lockScalingY, by, lockScalingFlip, _dim); 
     } 
    }; 
})(); 
関連する問題