2012-04-30 34 views
4

我有两个不同的阶段。 而且,我正在为它们添加图层并放置两个图像对象。动力学JS - 分层问题

现在,我已经给这些图像对象“点击”事件。

但是,由于最近添加的图层位于其他图层之上,因此只有顶层才会触发事件。

问题:点击紫色的指标,我得到警报。但是,黄色指标不会触发任何事件,因为它位于图层后面。

(检查其在底部提供JSFiddle链接)

如何克服这个问题..?

下面是我使用添加&位置的图像的代码示例。

工作JS小提琴链接:http://jsfiddle.net/v4u2chat/aqf9Y/8/

注:使用滑块来改变图像的位置。

形象定位代码

$function positionImage(stage,centerX,centerY,radius,startingAngle,endingAngle,targetValue4ImagePositioning,divIdvalue) 
    { 
     var imgLayer  = new Kinetic.Layer(); 
     var angleInDegress = 360*targetValue4ImagePositioning-90-5; 
     var angleInRadians = (Math.PI/180)*angleInDegress; 

     imgLayer.rotate((Math.PI/180)*(360*targetValue4ImagePositioning)); 

     var arcEndX = centerX+ ((radius+25)*Math.cos(angleInRadians)); 
     var arcEndY = centerY+ ((radius+25)*Math.sin(angleInRadians)); 

     imgLayer.setX(arcEndX); 
     imgLayer.setY(arcEndY); 

     var kineticImage = new Kinetic.Image(
     { 
      x: 0 
      ,y: 0 
      ,width:18 
      ,height:22 
      ,image: $('#'+divIdvalue)[0] 
      ,id:'kineticImage_'+divIdvalue 

     }); 
     kineticImage.on("click", callBackFn); 

     imgLayer.add(kineticImage); 
     stage.add(imgLayer); 

    } 
+0

你能在同一图层上绘制两个图像? –

+0

@SteveGreatrex你的jsfiddle不包含黄色或紫色的指标..我不得不了解这个代码。 –

+0

嘿@Elsa,那不是我的小提琴 - 请查看v4u2chat –

回答

1

感谢**Steve**您的输入。

实际问题出在舞台上。我使用了两个不需要的不同阶段。现在

,我改变了我的代码,以单级和它的作品般的魅力:)

层将不会占据整个画布区域。它只会占据我们创建该图层的形状的区域。所以,没有大惊小怪或图层的问题。

更新JS Fiddle可以从以下提到的链接中找到。

http://jsfiddle.net/v4u2chat/aqf9Y/9/