2017-03-26 53 views
0

我想样式使用ActionScript一个Flex 4的GridItem,我曾尝试以下:的ActionScript 3的setStyle不是一个函数

<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> 

回答

3

当使用一个中继器的GridItem的ID会不一样。要访问中继器内的任何项目,您必须指定与重复项目对应的索引。

举例:阵列由[“奥迪”,“宝马”],我们设置这个数组到您的中继器的数据提供程序,然后进入“奥迪”的电网项目,并设置它的风格,我们必须使用:

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

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

希望这会有所帮助,

Goodluck。

相关问题