2013-02-20 52 views
10

डिफ़ॉल्ट रूप से fabric.js तत्व किसी भी ऑब्जेक्ट को स्केल करने के लिए 8 अंकों के साथ आते हैं। लेकिन जिस ऐप को मैं विशेष रूप से काम कर रहा हूं, उसके लिए आवश्यक है कि एक धुरी (क्षैतिज या लंबवत) पर खींचने की अनुमति नहीं दी जानी चाहिए। मैं केवल कोने बिंदु चाहता हूं, पक्षों पर नहीं।fabric.js का उपयोग कर कैनवास तत्वों के स्केलिंग पॉइंट्स को मैं कैसे अक्षम कर सकता हूं?

क्या यह fabric.js के साथ संभव है?

उत्तर

16

आप object.lockUniScaling = true का उपयोग कर सकते हैं।
इसके अलावा, आप अपने कोनों को अनुकूलित कर सकते हैं: http://fabricjs.com/customization

-3

डिफ़ॉल्ट रूप से आप इसे नहीं बना सकते हैं। लेकिन आप कुछ फ़ंक्शंस बना सकते हैं जैसे: यदि चौड़ाई = x तो ऊंचाई = y कुछ घटनाओं पर एक्स और वाई के बीच कुछ संबंधों के साथ (जैसे "ऑन: स्केलिंग"), तो आप हमेशा चौड़ाई और ऊंचाई को कुछ अनुपात में बना सकते हैं।

+1

असंबद्ध उत्तर – Yagiz

22

हाँ,

आप object.setControlsVisibility() उपयोग कर सकते हैं: http://fabricjs.com/docs/fabric.Object.html#setControlsVisibility

this.setControlsVisibility({ 
    mt: false, // middle top disable 
    mb: false, // midle bottom 
    ml: false, // middle left 
    mr: false, // I think you get it 
}); 

JsFiddle उदाहरण: http://jsfiddle.net/Colmea/GjjJ8/1/ (ध्यान दें कि वहाँ के साथ 'श्री' नियंत्रण एक मामूली बग है 1.4.0 संस्करण में, 1.4.1 में तय)।

या आप object.setControlVisible() उपयोग कर सकते हैं:

object. setControlVisible('mt', false); // disable middle top control

नोट: यह केवल नियंत्रण छुपाता है और उन्हें खींचकर से बचें। लेकिन किसी भी पैमाने से बचने के लिए: lockScalingX और lockScalingY गुणों का उपयोग करें।

4
imgInstance.setControlsVisibility({ 
     mt: false, 
     mb: false, 
     ml: false, 
     mr: false, 
     bl: false, 
     br: false, 
     tl: false, 
     tr: false, 
     mtr: false, 
    }); 

अपनी वस्तु होने के लिए "imgInstance" बदलें।

@http://fabricjs.com/docs/fabric.Image.html

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^