Actionscript 3 setStyle 不是一个函数

Posted

技术标签:

【中文标题】Actionscript 3 setStyle 不是一个函数【英文标题】:Actionscript 3 setStyle is not a function 【发布时间】:2017-08-18 19:58:03 【问题描述】:

我正在尝试使用 actionscript 设置 Flex 4 GridItem 的样式,我尝试了以下方法:

<mx:VBox 
     
    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"   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】:

使用中继器时,GridItem 的 id 将不同。要访问中继器中的任何项目,您必须指定与重复项目相对应的索引。

示例:数组由 ["Audi", "BMW"] 组成,我们将此数组设置为您的中继器的 dataProvider,然后访问“Audi”的网格项并设置其样式,我们必须使用:

testBorder[0].setStyle("borderThickness", "3");

另外,需要考虑的重要一点,VBox“creationComplete”可以在转发器完全构建之前执行,因此,调用函数“addStyles”的最佳位置是在转发器的“repeatEnd”事件中,即(repeatEnd= "setTransactionPropertyType()")。

希望对你有帮助,

祝你好运。

【讨论】:

以上是关于Actionscript 3 setStyle 不是一个函数的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 ActionScript 3 - 随机播放(随机不重复)

ActionScript 3.0 声音不工作

函数不返回值(错误 1170;ActionScript 3.0)

ActionScript 3 色谱(不完整)

Actionscript 3 实例名称属性不起作用

ActionScript 3 将变量发送到页面而不打开它。