2014-04-21 43 views

回答

0

我认为这将是困难的,因为阴影链接到Shape对象。当然,您可以为所有图层元素设置阴影......或者,我可以做的更好的方法是拍摄图层,使用该图像进行图像处理,然后对该图像进行遮蔽。

var stage = new Kinetic.Stage({ 
     container: 'container', 
     width: 400, 
     height: 200 
    }); 
    var layer = new Kinetic.Layer(); 

    var rect1 = new Kinetic.Rect({ 
     x: 20, 
     y: 20, 
     width: 100, 
     height: 50, 
     fill: "green", 
     stroke: 'black', 
     strokeWidth: 2 
    }); 
    var rect2 = new Kinetic.Rect({ 
     x: 20, 
     y: 20, 
     width: 50, 
     height: 100, 
     fill: "blue", 
     stroke: 'black', 
     strokeWidth: 2 
    }); 

    layer.add(rect1); 
    layer.add(rect2); 
    stage.add(layer); 

    var layerImage = new Image(); 
    layerImage.src = layer.getCanvas().toDataURL(); 

    layerImage.onload = function() { 
     var layer = new Kinetic.Layer(); 
     var shadowedImage = new Kinetic.Image({ 
      image: layerImage, 
      shadowColor: 'black', 
      shadowBlur: 2, 
      shadowOffset: { 
       x: 10, 
       y: 10 
      }, 
      shadowOpacity: 0.5 
     }); 
     layer.add(shadowedImage); 
     stage.add(layer); 
    }