2012-04-02 2 views
0

ItemRenderer에 EventListener를 만들려고하지만 그 기능이 작동하지 않게하려고합니다. ItemRenderer 안에서 이벤트를 듣는 방법? MainHomeView.mxml에서 플렉스 : ItemRenderer에서 이벤트를 수신하는 방법

---- ----
<fx:Metadata> 
    [Event(name="myEvent", type="flash.events.Event")] 
</fx:Metadata> 

protected function btnAdd_clickHandler(event:MouseEvent):void {  
    var eventObject:Event = new Event("myEvent", true, true); 
    dispatchEvent(eventObject);  
} 

---- UserRenderer.mxml (itemRenderer를) ---

protected function init(event:FlexEvent):void{ //run in CreationComplete 
     addEventListener("myEvent", onHandleEvent); 
     } 

protected function onHandleEvent():void { 
     trace("Event received"); 
     } 
+0

itemrenderer는 클릭 처리기가있는 Button의 이벤트 전파 경로에 없습니다. 당신은'list.dispatchEvent (eventObject)'를 시도 할 수 있지만, 나는 그것도 작동하지 않을 것이라고 생각합니다. 왜 이것 대신 dataprovider를 조작하지 않으시겠습니까? –

+0

@SamDeHaan 그래서 customRenderer에 리스너를 가질 수있는 방법이 없다고 말하고 있습니까? hmmm too bad – jameslcs

+0

가능하지만 이벤트는 운영자에게 "전달"됩니다. http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html itemrenderers 아래의 이벤트를 파견하는 방법을 찾아야합니다. 어려울 수 있습니다. –

답변

0

에서 나는 구글을 가지고 발견 gskinner에있는 해결책. 그러나이 메소드를 사용하면 ItemRenderer의 각 항목에 이벤트가 수신되므로 ItemRenderer에 100 개의 항목이있는 경우 100 개의 이벤트를 수신하게됩니다.

0

이것은 조금 늦었을 수도 있지만 샘플에 따르면 ItemRenderer가 자체적으로 듣고 있으므로 이벤트를받지 못할 것입니다. 그리고 버블 링에 관해서는 표적과 포획 단계에서 기억하십시오. 사물은 무대에서 시작하여 표적을 파견 할 때까지 작동 한 다음 다시 내려갑니다. 렌더러는리스트의 자식이므로 결코이 이벤트를 수신하지 않습니다.

IR에서 목록의 이벤트를 가져 오려면 목록에 대한 참조가 필요합니다. 일반적으로 소유자입니다. 이 경우 owner.addEventListener()입니다. 각 렌더러에 할당 된 ListData을보고 해당 복합 개체에서 목록에 대한 참조를 볼 수도 있습니다. 문서로부터

스트레이트

이벤트 대상 이벤트가 표시리스트의 계층 구조를 통해 흐름의 초점 역할. 마우스 클릭이나 키 누르기와 같은 이벤트가 발생하면 Flash Player 또는 AIR 응용 프로그램은 표시 목록의 루트에서 이벤트 흐름으로 이벤트 객체를 전달합니다. 그런 다음 이벤트 대상은 이벤트 대상에 도달 할 때까지 표시 목록을 통과하여 표시 목록을 통한 복귀 이동을 시작합니다. 이벤트 대상에 대한이 왕복 여행은 개념적으로 세 단계로 나뉩니다. 캡처 단계는 루트에서 이벤트 대상 노드 이전의 마지막 노드까지의 이동을 포함하며, 대상 단계는 이벤트 대상 노드 만 포함하고 버블 링 단계는 다음을 포함합니다. 표시 목록의 루트로 돌아 오는 과정에서 후속 노드

의 itemRenderer 각 렌더링이 할당됩니다 ClassFactory 생성 방법 의 일부이기 때문에 당신은 이것과 조금 조심해야합니다 이 청취자 - 이것은 당신이 원하는 것일 수도 아닐 수도 있습니다.

+0

나는 IR에서 이벤트를 듣는 것이 좋은 것이 아니라 내 문제를 해결하기 위해 다른 방법을 사용했다는 것을 알았습니다. 감사 – jameslcs

관련 문제