2012-02-01 3 views
0

HGroup 레이블 주위에 Scroller 컨테이너를 설정했습니다. Scroller는 한 번에 하나의 레이블 만 표시하도록 설정되어 있습니다. 내가 뭘 하려는지 버튼을 클릭하면 Scroller의 볼 수있는 레이블을 결정하는 것입니다. Scrollers 및 HGroups에서 참조 자료를 샅샅이 조사했지만 그룹의 어떤 요소가 표시되는지 결정하기위한 프로그래밍 방식을 공식화 할 수 없습니다. 참조Scroller 컨테이너의 뷰에있는 HGroup 하위 구성 요소 가져 오기 Adobe Flex 4.5

스크롤러 번호 :

<local:Scroller id="imageViewer" includeIn="startState" left="411" right="411" top="241" 
        bottom="356" depth="2"> 
    <s:HGroup id="imageGroup" gap="0" width="100%" height="100%"> 
     <s:Label id="vin1337" width="201" height="104" color="white" fontSize="30" 
       text="Vehicle ID:1337" textAlign="center" verticalAlign="middle"/> 
     <s:Label id="vin2567" width="199" height="104" color="white" fontSize="30" 
       text="Vehicle ID:2567" textAlign="center" verticalAlign="middle"/> 
     <s:Label id="vin9456" width="199" height="104" color="white" fontSize="30" 
       text="Vehicle ID:9456" textAlign="center" verticalAlign="middle"/> 
    </s:HGroup> 
</local:Scroller> 

은 결국 이러한 레이블 이미지 수 있지만 현재 개념 증명 라벨을 사용.

도움을 주시면 감사하겠습니다. 읽고 고맙습니다.

편집 : 그래서 lastIndexInView를 사용하여 접근법을 구현 한 후 "TypeError : Error # 1009 : null 객체 참조의 속성이나 메소드에 액세스 할 수 없습니다."라는 메시지가 계속 나타납니다. "vehicleID.text = Label (lObj). 텍스트;"줄에.

기능 :

 protected function idSelect_clickHandler(event:MouseEvent):void 
     { 
      var hLay:HorizontalLayout = imageGroup.layout as HorizontalLayout; 
      var lIndex:int = hLay.lastIndexInView; 
      var lObj:Object = imageGroup.getElementAt(lIndex); 

      vehicleID.text = Label(lObj).text; 

      currentState="selectedState"; 
     } 

구성 요소 :

<local:SnapScroller id="imageViewer" includeIn="startState" left="411" right="411" top="241" 
        bottom="356" depth="2"> 
    <s:HGroup id="imageGroup" gap="0" width="100%" height="100%"> 
     <s:Label id="vin1337" width="201" height="104" color="white" fontSize="30" 
       text="Vehicle ID:1337" textAlign="center" verticalAlign="middle"/> 
     <s:Label id="vin2567" width="199" height="104" color="white" fontSize="30" 
       text="Vehicle ID:2567" textAlign="center" verticalAlign="middle"/> 
     <s:Label id="vin9456" width="199" height="104" color="white" fontSize="30" 
       text="Vehicle ID:9456" textAlign="center" verticalAlign="middle"/> 
    </s:HGroup> 
</local:SnapScroller> 

<s:Button id="idSelect" includeIn="startState" x="367" y="608" width="290" height="67" 
      label="Select" click="idSelect_clickHandler(event)" color="#00008F" fontSize="24"/> 

<s:Label id="vehicleID" includeIn="selectedState" x="425" y="453" color="#00008F" fontSize="24" 
     text="Vehicle ID: ____"/> 

답변

0

나는이 http://blog.flexexamples.com/2009/10/31/determining-how-much-of-an-item-is-visible-in-a-scrolling-vgroup-container-in-flex-4/

기본적으로 레이아웃이있는 것 firstIndexInView 및 lastIndexInView 속성이 귀하의 질문에 대답해야한다고 생각 아래에 포함 된 코드는 보이는 항목을 알려줍니다.

+0

이것은 모든 것을 명확하게 나타내며 정확하게 내가 찾고 있던 것입니다. – tjc134

+0

나는 당신의 제안과 그것이 생성 한 새로운 문제를 포함하도록 내 질문을 업데이트했다. – tjc134

0

두 번째 문제는 실제로 초기화되기 전에 vehicleID 구성 요소에 액세스하려고했기 때문입니다. 즉, 현재 상태에 포함되지 않은 요소를 변경하려고했지만 실제로는 다음 상태의 구성원이었습니다.

먼저 상태를 변경 한 다음 레이블을 할당하여 해결했습니다.