2013-02-20 29 views
10

Theo các phần tử fabric.js mặc định có 8 điểm để mở rộng bất kỳ đối tượng nào. Nhưng ứng dụng tôi đang làm việc đặc biệt yêu cầu kéo giãn không được phép trên một trục (theo chiều ngang hoặc chiều dọc). Tôi chỉ muốn các điểm góc, không phải là điểm ở hai bên.Làm cách nào để vô hiệu hóa các điểm mở rộng của các phần tử canvas bằng cách sử dụng fabric.js?

Có thể với fabric.js không?

Trả lời

-3

Theo mặc định, bạn không thể thực hiện. Nhưng bạn có thể tạo một số hàm như: nếu width = x thì height = y với một số quan hệ giữa x và y trên một số sự kiện (như "on: scaling"), bạn luôn có thể làm cho chiều rộng và chiều cao ở tỷ lệ nhất định.

+1

Câu trả lời không liên quan – Yagiz

22

Vâng,

bạn có thể sử dụng 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 
}); 

dụ JsFiddle: http://jsfiddle.net/Colmea/GjjJ8/1/ (lưu ý có một lỗi nhỏ với kiểm soát 'mr' trong phiên bản 1.4.0, được sửa trong 1.4.1).

Hoặc bạn có thể sử dụng object.setControlVisible():

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

Lưu ý: này chỉ có thể giấu điều khiển và tránh kéo chúng. Nhưng để tránh bất kỳ quy mô nào: hãy sử dụng các thuộc tính lockScalingXlockScalingY.

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

thay đổi "imgInstance" làm đối tượng của bạn.

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