2011-04-25 7 views
0

다른 뷰에서받은 데이터를 사용하여 슬라이드 쇼를 만들어야합니다.구성 요소의 데이터 Flex에서 ItemRenderer를 실행하십시오.

나는 다음과 같이 슬라이드 쇼의 뷰를 호출하고 있습니다 :

<s:List id = "list" dataProvider = "{actions}" 
change = "navigator.pushView (DetailsProduct, list.selectedItem) "> 
<s:itemRenderer> 
<fx:Component> 
<s:MobileIconItemRenderer 
labelField = "title" 
messageField = "description" 
decoratorClass = "{data.icon}"> 
</s:MobileIconItemRenderer> 
</fx:Component> 
</s:itemRenderer> 
</s:List> 

내가 선택한 항목을 통과하고있어 전체 목록을 통과해야하기 때문에 문제가 매개 변수를 보낼 수있는 시간이라고 생각합니다.

그리고 다른 문제는보기에 있습니다. 개체가 목록 외부에서 수신되었지만 내부에서는 볼 수 없습니다.

이 코드를 사용하면 개체가 나타나지만 뒤로 및 앞으로 단추가 작동하지 않습니다.

<s:List id = "myList" 
    dataProvider = "{actions}"> 
</s:List> 

<s:Image source="{data.icon}"/> 
<s:Label text="{data.title}"/> 
<s:Label text="{data.description}"/> 

<s:HGroup> 
<s:Button label="Forward" click="imgForward(event)"/> 
<s:Button label="Back" click="imgBack(event)"/> 
</s:hgroup> 

그리고이 코드는 아무 것도 보여주지 않습니다. 객체도 같은 방식으로 호출됩니다.

<s:List id = "myList" 
    dataProvider = "{actions}"> 
     <s:itemRenderer> 
    <fx:Component> 
    <s:ItemRenderer> 
     <s:Image source="{data.icon}"/> 
     <s:Label text="{data.title}"/> 
     <s:Label text="{data.description}"/> 
    </s:ItemRenderer> 
    </fx:Component> 
    </s:itemRenderer> 
</s:List> 

<s:HGroup> 
    <s:Button label="Forward" click="imgForward(event)"/> 
    <s:Button label="Back" click="imgBack(event)"/> 
</s:hgroup> 
+0

나중에 참조 할 수 있도록; "중괄호"가있는 편집기의 버튼은 쉽게 표시 할 수 있도록 코드를 포맷합니다. 따라서 태그 이름에 공백을 넣지 않아도됩니다. – JeffryHouser

답변

2

나는 실제로 당신이 달성하려는 것을 이해하지 못합니다. data 속성은 IDataRenderer 인터페이스에 정의되어 있습니다.

구성 요소가 렌더러로 사용될 때 구성 요소의 인스턴스가 나타내는 데이터 요소는 데이터 속성을 사용하여 렌더러로 전달됩니다.

"작동하는지 또는 작동하지 않는지"를 정량화하지 않았으므로 원하는 동작이 무엇인지, 왜 잘못되었는지, 왜 잘못되었는지는 확실하지 않습니다. 첫 번째 샘플에서는 . 데이터 속성 값이 기대하지 : 나는 이미지를 기대

<s:List id="myList" 
    creationComplete="criaLista(event)" 
    dataProvider="{actions}"> 
</s:List> 

<s:Image source="{data.icon}"/> 
<s:Label text="{data.title}"/> 
<s:Label text="{data.description}"/> 

내가하는 dataProvider에 포함 된 내용을 잘 모르겠지만,이 개체가 포함되어있는 경우, 나는이 목록에 표시 할 것을 기대를, 데이터 속성이 null 일 가능성이 높으므로 레이블에 시각적 요소가 표시되지 않습니다. 목록에서 선택한 항목을 참조하려는 경우 데이터에 액세스하는 대신

<s:Image source="{myList.selectedItem.icon}"/> 
<s:Label text="{myList.selectedItem.title}"/> 
<s:Label text="{myList.selectedItem.description}"/> 

목록 인스턴스의 selectedItem 속성을 사용하여 표시 요소를 수정합니다.

당신이의 itemRenderer를 생성 할 두 번째 샘플에서

, 내가이 일을 기대 :

<s:List id="myList" 
    creationComplete="criaLista(event)" 
    dataProvider="{actions}"> 
     <s:itemRenderer> 
    <fx:Component> 
    <s:ItemRenderer> 
     <s:Image source="{data.icon}"/> 
     <s:Label text="{data.title}"/> 
     <s:Label text="{data.description}"/> 
    </s:ItemRenderer> 
    </fx:Component> 
    </s:itemRenderer> 
</s:List> 

을하지만, itemRenderer에는, 이미지 또는 두 개의 레이블의 위치를 ​​아무것도하지 않는다, 그래서 나는 그들에게 기대 서로 위에 겹쳐져있어 바람직하지 않은 행동입니다. 크기를 설정하기 위해 X와 Y 값을 설정할 수 있습니다.

특정 문제에 대해 자세히 설명하고 싶다면; 왜 첫 번째 샘플은 '작동'하고 두 번째 샘플은 작동하지 않습니다.

+0

@ www.Flextras.com +1 멋진 커버. @Leticia 변수 "데이터"의 명명에 충돌이 있습니다. 이해하려는 문제입니다. 무엇을하려고합니까? –

+0

@Timofei Davydik 감사합니다! – JeffryHouser

+0

저에게 대답 해 주셔서 감사합니다. 내가 뭘하려고하는지 : 나는 여러 항목을 가진 목록을 가지고있다. 그 항목을 클릭하면 슬라이드 쇼에 해당 항목의 세부 정보가 표시되어 다음 항목의 세부 정보로 이동하거나 위의 항목 세부 정보를 반환 할 수 있습니다. 첫 번째 코드에서 이러한 세부 정보를 볼 수 있지만 목록에 없으므로 위 섹션의 세부 정보로 돌아갈 수 없습니다. 두 번째 코드에서 항목을 목록에 표시하려고 시도했지만 아무 것도 나타나지 않습니다. 목록이 꺼져있을 때 참조를 가져 오는 방법을 알 수 없으며 내부에 있으면 참조를 가져올 수 없습니다. –

관련 문제