나는 당신이이 클래스를 사용하고 있어야합니다 당신의 설명에서 믿고있어 내장 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에서 테스트되었으며 작동합니다.
작은 코드 예제를 추가하면 도움이 될 수 있습니까? –