2012-02-01 76 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:Can not access a property or method of null object reference。」上線「vehicleID.text = Label(lObj).text;」。下面是所涉及的代碼:

功能:

 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

我遇到的第二個問題是由於我試圖在實際初始化之前訪問vehicleID組件。換句話說,我試圖改變一個不包含在當前狀態中的元素,但事實上,它是下一個狀態的成員。

通過先改變狀態,然後分配標籤來解決它。