我在HGroup标签周围设置了一个Scroller容器。 Scroller设置为一次只显示一个标签。我想要做的是确定单击按钮时Scroller可以看到哪个标签。我已经在Scrollers和HGroups上搜索了参考资料,但是无法制定程序化策略来确定该组中的哪个元素。
滚动码参考:
<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:错误#1009:无法访问空对象引用的属性或方法”。在“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 :(得分:0)
基本上布局有firstIndexInView和lastIndexInView属性,它会告诉你哪些项是可见的。
答案 1 :(得分:0)
我遇到的第二个问题是由于我在实际初始化之前尝试访问vehicleID组件。换句话说,我试图改变一个未包含在当前状态中的元素,但事实上,它是下一个州的成员。
首先通过更改状态解决问题,然后分配标签。