Flex 녀석을위한 질문. 트리의 항목의 깊이/레벨에 따라 mx : Tree에서 여러 항목 렌더러를 사용할 수 있습니까? 예를 들면. 첫 번째 수준 항목에 대해 단추와 레이블을 사용하고 두 번째 수준 항목에 대해 combobox를 사용하고 싶습니다.mx : Tree에서 2 가지 다른 아이템 렌더러를 사용하는 방법
어떻게 든 가능합니까?
Flex 녀석을위한 질문. 트리의 항목의 깊이/레벨에 따라 mx : Tree에서 여러 항목 렌더러를 사용할 수 있습니까? 예를 들면. 첫 번째 수준 항목에 대해 단추와 레이블을 사용하고 두 번째 수준 항목에 대해 combobox를 사용하고 싶습니다.mx : Tree에서 2 가지 다른 아이템 렌더러를 사용하는 방법
어떻게 든 가능합니까?
해결책 : 확장 된 트리에서 함수 getItemRendererFactory (data : Object) : IFactory를 재정의하고 적절한 itemRenderer를 선택하는 데 필요한 논리를 작성합니다. 이 다른 사람에게 또한
조건부 논리는 단일 item 렌더러에서 구현되어야합니다. 여러 렌더러를 설정할 수 없습니다. 여기
이 구현 될 수있는 방법 receipe입니다 : http://cookbooks.adobe.com/post_How_do_I_create_a_Tree_itemRenderer_-62.html 문을 보여줍니다 '가'당신이 내부 노드 여부가 있다면 그건override public function set data(value:Object):void
{
if(value != null)
{
super.data = value;
if(TreeListData(super.listData).hasChildren)
{
setStyle("color", 0x660099);
setStyle("fontWeight", 'bold');
}
else
{
setStyle("color", 0x000000);
setStyle("fontWeight", 'normal');
}
}
}
. 또한 데이터 공급자를 생성 할 때 추가 속성을 지정할 수 있습니다.
감사합니다 도움이 될 것입니다
희망, 나는이 개 확장 클래스와 주요의 itemRenderer를 구현 오버라이드 (override) 기능 세트 데이터 스위칭 않습니다. 하지만 노드 깊이를 어떻게 결정합니까? – luccio
그냥 몇 가지 문제에서 실행 ... 집합 데이터()에서 이렇게 할려고 해요 : if (depth == 1) { itemRenderer = itemRendererOne; } else { itemRenderer = itemRendererTwo; } 하지만 전체 트리에서 itemRenderer를 변경합니다. 특정 항목에 대해서만 전환 할 수 있습니까? – luccio