2012-11-29 56 views
1

我與我正在嘗試旋轉三角形。圖像旋轉正常,我沒有任何問題。但我有一個問題,只有當我點擊我可以旋轉的實際點時,三角形才應該獲得焦點。但是這沒有發生。我附上了解釋問題的圖片。我在swf運行時沒有任何問題。但在DHTML運行時我正面臨着這個問題。這對我使用的圖像有什麼影響嗎?Openlaszlo bringtoFront無法正常工作

我使用Openlaszlo5.0,在windows 16.0下測試,三角形的測試圖像是PNG。

enter image description here

+0

你可以添加一個小代碼示例,這將有所幫助。 – 2012-11-29 15:51:24

回答

1

我從你的描述假設您必須使用具有類內置bringToFront()當你點擊它,就像basewindow例如調用。通過類似這樣的類,你可以重寫bringToFront()方法並進行檢查,看看鼠標是否在你想要回應的區域內,然後決定是否調用super.bringToFront()。爲了簡單起見,我的示例只是檢查點擊是否在方格的右半部分,但您可以插入公式來確定它是否位於三角形的點內,而不是在您的應用程序中:

<canvas width="1000" height="584" debug="true"> 

    <basewindow id="v1" width="100" height="100" x="25" y="25" bgcolor="0xff0000" clickable="true"> 

     <method name="bringToFront"> 
     <![CDATA[ 

      var x = this.getMouse('x'); 
      var y = this.getMouse('x'); 

      Debug.debug('x='+x); 
      Debug.debug('y='+y);  

      // Ensure mouse is within right half: 

      if (x>(this.width)/2) 
       super.bringToFront(); 

     ]]> 
     </method> 

    </basewindow> 

    <basewindow id="v" width="100" height="100" x="50" y="50" bgcolor="0xcccccc" clickable="true"> 

     <method name="bringToFront"> 
     <![CDATA[ 

      var x = this.getMouse('x'); 
      var y = this.getMouse('x'); 

      Debug.debug('x='+x); 
      Debug.debug('y='+y);  

      // Ensure mouse is within right half: 

      if (x>(this.width)/2) 
       super.bringToFront(); 

     ]]> 
     </method> 

    </basewindow> 

</canvas> 

我在OL 4.9.0 SWF10中測試它,它工作。

+0

謝謝..我會嘗試這種方法,看看它是否解決了我的目的。我會更新狀態。 – karthick