0
액션 스크립트 : 이벤트 리스너를 자동화 된 방식으로 바인딩 할 때 목록의 마지막 리스너 만 기능합니다.
다음은 코드의 일부입니다.protected function handleTriggers(raw:Object) : void
{
var name:String, value:String, map:Object;
map = {
'onclick': MouseEvent.CLICK,
'ondblclick': MouseEvent.DOUBLE_CLICK,
'onmousedown': MouseEvent.MOUSE_DOWN,
'onmouseup': MouseEvent.MOUSE_UP,
'onmouseleave': MouseEvent.ROLL_OUT,
'onrollout': MouseEvent.ROLL_OUT,
'onmouseenter': MouseEvent.ROLL_OVER,
'onrollover': MouseEvent.ROLL_OVER,
'onmouseover': MouseEvent.MOUSE_OVER,
'onmouseout': MouseEvent.MOUSE_OUT,
'onmousemove': MouseEvent.MOUSE_MOVE
};
for (name in raw)
{
value = raw[name];
if (name in map) {
var cloneValue:String = value;
object.addEventListener(map[name], function(event:* = null) : void {
execute(cloneValue, event);
});
}
}
}
object는 일반 DisplayObject이며 raw 객체에는 일련의 onclick, onmouseover 등의 이벤트 트리거가 포함되어 있습니다. 이는 해당 원시 객체의 속성을 자동으로 따라가는 이벤트 리스너를 첨부 할 수 있다는 의미였습니다. 그리고 그것이 실제로 작동하는 것처럼 보입니다. 실제로 listener 함수에서 일부 Listener 함수를 볼 수 있습니다. DisplayObject의 속성 및 해당 숫자는 트리거 수에 해당합니다. 그러나 나중에 모든 것이 무대에 올 때 마지막 이벤트 처리기 만 트리거됩니다.
왜 그런 일이 일어날 지 아무도 모른다.
그것은 작동하지 않았다, 그러나 나는 점을 가지고, 그래서 난 그냥 별도의 기능에서 addEventListener 논리를 이동하고 일 :
나는이 (테스트되지 않은) 작업을한다고 생각합니다. 감사. 귀하가 귀하의 응답을 편집하거나 확인하는 경우, 귀하는이를 적절한 것으로 수락 할 것입니다. – jayarjocloneValue 함수를 param으로 호출하는 것을 잊었습니다;) 이제는 작동해야합니다 ... – maxmc