2012-02-01 9 views
0

ラベルのHグループの周りにScrollerコンテナを設定しました。 Scrollerは、一度に1つのラベルだけを表示するように設定されています。私がしようとしているのは、ボタンがクリックされたときにどのラベルが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).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

私はこれがあなたの質問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

2番目の問題は、実際に初期化される前にvehicleIDコンポーネントにアクセスしようとしていたためです。つまり、現在の状態には含まれていない要素を変更しようとしていましたが、実際には次の状態のメンバーでした。

最初に状態を変更してラベルを割り当てて解決しました。

関連する問題