나는 mxml에 목록을 가지고 있습니다. 사용자가 목록에서 항목을 길게 누르면 메뉴를 표시해야합니다. 메뉴는 눌려진 항목에 대한 몇 가지 조치를 표시합니다.마우스 다운 이벤트에서 플렉스리스트 목록에 대한 참조를 얻는 방법
또한 내가 선택한 항목을 목록에서 선택한 항목으로 만들어야합니다. 그래서 목록에 대한 참조가 필요합니다. 목록에 올 수있는 정상적인 방법을 찾지 못해 이렇게했습니다.
물론 끔찍한 점은 어느 것입니까? 나는 목록에 대한 참조를 얻는 더 좋은 방법을 찾고있다. 잘 모르겠어요하지만 단지 트릭을 수행하는 itemRenderer의하면 onMouseDown에서 선택한 속성을 설정하지 않습니다
<s:List id="catList" x="0" y="0" width="100%" height="100%" click="selectItemHandler(event)">
<s:itemRenderer>
<fx:Component>
<s:IconItemRenderer
styleName="labelFontStyle"
messageStyleName="descriptionFontStyle"
labelField="labelField"
messageField="descriptionField"
dataChange="onDataChange(event)"
mouseDown="onMouseDown(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function onMouseDown(event:MouseEvent):void
{
try
{
var tg:Object = event.target;
var selectedItem:Object = event.currentTarget.data;
if (selectedItem != null)
{
// Here I need to set the selectedItem property of
// the owning list.
// I don't know how to get to the list so I did this.
var list:Object = event.currentTarget.parent.parent.parent.parent.parent;
list.selectedItem = selectedItem;
}
} catch (e:Error) {}
}
]]>
</fx:Script>
</s:IconItemRenderer>
</fx:Component>
</s:itemRenderer>
</s:List>
목록이 mxml 파일의 맨 위에있는 객체입니까? – CyanAngel
@CyanAngel, 루트 객체는 List가 작동되면서 – Asimov