2017-04-20 186 views
1

我想讓一個名稱爲mainImage的對象作爲背景圖像,當用戶嘗試使用「sendBackwards」時,沒有其他對象可以傳遞它。方法。sendBackwards不會通過某個對象(fabricjs)

所以,在我的思想,我需要知道

1.If the mainImage is at index 0 
2.If active selected object is at index 1 when I should not allow to use sendBackwards 

這是我嘗試過,到目前爲止,但我猜你將能夠看到,這是失敗的:

$scope.getActiveIndex = function() { 
      for (var i = 0; i < canvas.fabric._objects.length; i++) { 
      console.log("not active"); 
       if (canvas.fabric._objects[i].status === "active") { 
       console.log("active"); 
        return i; 
       } 
      } 
     } 

     $scope.sendBackwards = function() { 
      var currentObject = canvas.fabric.getActiveObject(); 

       for (var i = 0; i < canvas.fabric._objects.length; i++) { 
console.log($scope.getActiveIndex()); 
       if (canvas.fabric._objects[i].name === "mainImage" && $scope.getActiveIndex() == 1) { 
        console.log("Can not pass the background"); 
        return; 
       } else { 
        canvas.fabric.sendBackwards(currentObject); 
       } 
    } 
      canvas.fabric.renderAll(); 
    }; 

謝謝。

回答

0

解決了這個很容易:

$scope.sendBackwards = function() { 
     var currentObject = canvas.fabric.getActiveObject(); 
     var zIndex = canvas.fabric.getObjects().indexOf(currentObject); 
    if (zIndex == 1) { 
     return false; 
    } else { 
      canvas.fabric.sendBackwards(currentObject); 
    } 

    canvas.fabric.renderAll(); 

};