많은 이미지가있는 컨테이너가 있습니다. 각 이미지에서 클릭 및 기타 마우스 이벤트에 대한 리스너를 추가하는 대신, 이미지의 부모에서만 해당 이벤트를 수신하고 싶습니다.ActionScript 3에는 일종의 이벤트 위임 시스템이 있습니까?
그럴 수 있습니까?
많은 이미지가있는 컨테이너가 있습니다. 각 이미지에서 클릭 및 기타 마우스 이벤트에 대한 리스너를 추가하는 대신, 이미지의 부모에서만 해당 이벤트를 수신하고 싶습니다.ActionScript 3에는 일종의 이벤트 위임 시스템이 있습니까?
그럴 수 있습니까?
container.addEventListener(MouseEvent.CLICK, clickHandler);
private function clickHandler(e:MouseEvent):void {
trace(e.currentTarget); // references container
trace(e.target); //references container's child or container itself depending on what has been clicked
}
귀하의 질문을 정확하게 이해하는 것은 완전히 가능합니다. 그래서 가정이 같은있다 :
parent.addEventListener(MouseEvent.CLICK, handleClick);
다음 핸들러가
private function handleClick(e:MouseEvent) {
// cast the target of the event as the correct class
var clickedChild:Child = Child(e.target);
// Do whatever you want to do.
}
의 모양은 다음과 같습니다
parent.addChild(new Child());
parent.addChild(new Child());
parent.addChild(new Child());
parent.addChild(new Child());
을 그런 다음 thusly 히 부모에게 이벤트 리스너를 결합 할 수 있어야한다
이 값을 useCapture
addEventListener 인수와 결합하여 버블 링면이 아닌 이벤트 캡쳐 측에 이벤트를 첨부 할 수도 있습니다. 또한 .stopPropagation()
메서드를 이벤트에 사용하면 다른 이벤트 처리기도 실행되지 않습니다. ...
하지만 당신이하려고하는 것에 대해 더 많이 알지 못해도 사용할 필요가 있다면 말하기 어렵습니다. 그러나 바라건대 그것은 당신에게 옳은 방향으로 추진력을 줄 것입니다.
그렇습니다. AS가 버블 링을 지원하기 때문에 수행 할 수 있지만 기본 제공 방법이 없으므로 다른 사람의 라이브러리 또는 롤을 사용해야합니다. – zzzzBov
내가 의견을 낮추면 그럴 것입니다. –