我正在尝试使用actionscript设置Flex 4 GridItem的样式,我尝试了以下内容:
<mx:VBox
height="878" width="1920"
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:s="library://ns.adobe.com/flex/spark" xmlns:local="*" creationComplete="addStyles()">
<mx:Script>
<![CDATA[
public var selectedLot:String = "";
private function addStyles():void
{
testBorder.setStyle("borderThickness", "3");
}
但是我收到以下错误:
setStyle is not a function.
我错过了什么吗?
GridItem位于转发器内。
这是我的GridItem:
<mx:GridItem id="testBorder" width="101" height="52.25" horizontalAlign="center" verticalAlign="middle" borderStyle="solid" borderColor="gray">
<mx:Image source="assets/ruler-icon.png" />
<s:Label text="{r.currentItem.sqft}" fontSize="10" color="#808080" fontFamily="Helvetica" />
</mx:GridItem>
答案 0 :(得分:3)
使用转发器时,GridItem的ID将不相同。要访问转发器内的任何项目,您必须指定一个与重复项目相对应的索引。
示例:阵列由[&#34;奥迪&#34;,&#34;宝马&#34;]组成,我们将此阵列设置为转发器的dataProvider,然后访问&#34;奥迪&# 34;&#39;网格项并设置其样式,我们必须使用:
testBorder[0].setStyle("borderThickness", "3");
此外,需要考虑的重要一点是,VBox&#34; creationComplete&#34;可以在转发器完全构建之前执行,因此,最好的地方可以调用你的功能&#34; addStyles&#34;是在转发器&#34; repeatEnd&#34;事件即(repeatEnd =&#34; setTransactionPropertyType()&#34;)。
希望这有帮助,
古德勒克。