swf 파일 (900x600)이 있고 그 파일의 주요 부분이 투명합니다. 그래서 나는 투명 내가 마우스를 어떻게 클릭 부품 SWF에 알고투명도 확인
event.localX
event.localY
에 의해 좌표를 얻을 수 있습니다
... transaprent 이미지의 일부 여부에 중 사용자가 클릭 알고 SWF 파일을 클릭하여 원하는 안 그래?
swf 파일 (900x600)이 있고 그 파일의 주요 부분이 투명합니다. 그래서 나는 투명 내가 마우스를 어떻게 클릭 부품 SWF에 알고투명도 확인
event.localX
event.localY
에 의해 좌표를 얻을 수 있습니다
... transaprent 이미지의 일부 여부에 중 사용자가 클릭 알고 SWF 파일을 클릭하여 원하는 안 그래?
첫째, 당신이 당신의 SWF의 배경에 일부 투명 스프라이트가 있는지, 확인하십시오.
둘째, 순수한 로컬 좌표를 사용하지 말고 다른 내부 객체의 로컬 좌표를 포함 할 수 있으며 루트에서 필요합니다.
var bmd:BitmapData = new BitmapData(1, 1, true, 0);
var pt:Point = new Point();
var m:Matrix = new Matrix();
m.translate(-e.stageX, -e.stageY);
bmd.draw(this, m);
var transparent:Boolean = !bmd.hitTest(pt, 0x00, pt);
trace('color: '+bmd.getPixel32(0,0).toString(16));
trace('is tranparent? ' + transparent);
bmd.dispose();
정말 고마워요)))) –
안녕하세요. –
마우스 클릭을 위해 스테이지에 이벤트 리스너를 추가하고 e.target == stage인지 확인합니다. 이 여기에 코드입니다 : - 그렇지 않으면 이벤트를 수신하지 않습니다 모든
import flash.events.MouseEvent;
stage.addEventListener(MouseEvent.CLICK, hClick);
function hClick(e : MouseEvent) : void
{
trace(e.target == stage); // true if we click on the transparent zone, false if we hit a symbol on the stage.
}
그 부분에 swf가 있고 이벤트 수신기가 swf (전체 단계입니다!)에 없기 때문에 작동하지 않습니다. –
하지 최고의 또는 깨끗한 코드 만 작동합니다 : 예를 들어, 당신이 마우스 이벤트를받을 경우, 해당 SWF의 루트에 마우스 이벤트 리스너를 추가하고 다음과 같은 쓰기 단계의 좌표
을 사용했습니다 . 이것은 테스트 한 코드가 아닙니다.
private function handleMouseDown(event:MouseEvent):void {
var pt:Point = new Point(event.localX, event.localY);
pt = event.target.globalToLocal(pt);
var tmp:int = int((new uint(event.target.getPixel32(pt.x,pt.y)).toString(16)).substr(0,2));
if(tmp != 0){
trace('is transparent')
}
}
"투명"하다고 말하면 벡터 드로잉이 없거나 알파 = 0 (png 또는 모양) 인 것이 있습니까? – Kodiak
"이미지"벡터 또는 비트 맵의 의미를 명확히 설명하십시오. – Daniel