2012-04-30 70 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/