错误1120:访问未定义的属性

时间:2010-02-22 05:45:09

标签: flex subclass

我在主文件上有<mx:Script>,我在其中定义了这个:

[Bindable]
private var dpCols:ArrayCollection = new ArrayCollection([
{'prx':'bl', 'nmb':'Blanco', 'ral':'RAL1013', 'hex':'E8E4CD'},
{'prx':'am', 'nmb':'Amarillo', 'ral':'RAL1005', 'hex':'C79E03'},
{'prx':'gr', 'nmb':'Gris Perla', 'ral':'RAL7045', 'hex':'8E939E'}
 ]);

我可以在许多地方将它用作dataProvider,但不是在这里:

<mx:TileList dataProvider="{dpCols}">
    <mx:itemRenderer>
    <mx:Component>
        <mx:Box backgroundColor="{int('0x' + data.hex)}"
            height="64" width="72">
            <mx:Label text="{data.ral}" textAlign="center" width="100%"/>
            <mx:Label text="{data.nmb}" textAlign="center" width="100%"/>
        </mx:Box>
    </mx:Component>
    </mx:itemRenderer>
</mx:TileList>

此TileList位于<radg:RaDG>(我的AdvancedDataGrid的子类),<radg:columns><mx:AdvancedDataGridColumn><mx:itemEditor><mx:Component>之内。如果我把它放在外面,它就可以了。但我需要它让它有itemEditor。

我应该如何参考dpCols呢? (或者我该如何解决这个错误?)

谢谢!

1 个答案:

答案 0 :(得分:1)

您需要outerDocument,因为您位于<mx:Component>标记内。请参阅this Adobe docs page或此SO question中的“使用组件标记”部分。

如果您在使用嵌套时变得特别棘手,则可能需要使用parentDocument,但听起来outerDocument应该适用于您的情况(只有<mx:Component>个标签的一个嵌套)。

用法:

<mx:TileList dataProvider="{outerDocument.dpCols}" />