2012-11-29 3 views
1

저는 회전하려고하는 삼각형을 가지고 있습니다. 이미지가 제대로 회전하고 있는데 문제가 없습니다. 하지만 삼각형은 내가 회전 할 수있는 지점에서 실제 점을 클릭 할 때만 초점을 가져야하는 문제가 하나 있습니다. 그러나 이것은 일어나지 않습니다. 문제를 설명하는 이미지를 첨부했습니다. 내가 swf 런타임 에서이 모든 문제가 없었어요. 하지만 DHTML 런타임에서 나는이 문제에 직면 해있다. 이 이미지에 내가 사용하고있는 것이 있습니까?Openlaszlo bringtoFront가 제대로 작동하지 않습니다.

저는 Openlaszlo5.0을 사용 중이며, Windows 16.0에서 테스트하고 삼각형의 테스트 이미지는 PNG입니다.

enter image description here

+0

작은 코드 예제를 추가하면 도움이 될 수 있습니까? –

답변

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