Actionscript 3 setStyle不是一个函数

时间:2017-03-26 01:17:31

标签: actionscript-3 flash flex actionscript flex4

我正在尝试使用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>

1 个答案:

答案 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;)。

希望这有帮助,

古德勒克。