Apache flex 可以<;fx:脚本>;是否在itemrenderer外部和内部声明?

Apache flex 可以<;fx:脚本>;是否在itemrenderer外部和内部声明?,apache-flex,itemrenderer,Apache Flex,Itemrenderer,我在itemRenderer fx:脚本体外部声明一个变量。但是,当我在itemRenderer中设置它时: 测试值=数据。@field\u值 它给出了一个错误“访问未定义的属性测试值” 我可以有两个身体吗,一个在里面,一个在外面 public var test_var:Number=new Number(); 公共函数useVariableValue():void{ //我将在此函数中使用变量值。。 } ]]> * fx:组件定义了一个全新的范围。您只能使用outerDocument关键字访

我在itemRenderer fx:脚本体外部声明一个变量。但是,当我在itemRenderer中设置它时:

测试值=数据。@field\u值

它给出了一个错误“访问未定义的属性测试值”

我可以有两个身体吗,一个在里面,一个在外面

public var test_var:Number=new Number();
公共函数useVariableValue():void{
//我将在此函数中使用变量值。。
}
]]>
*

fx:组件定义了一个全新的范围。您只能使用outerDocument关键字访问初始范围中的属性

在您的情况下,将其更改为:

private function onClick(evt:Event):void
{
    outerDocument.test_Var = data.@field_value;
}
有关更多信息,请阅读(请参阅关于外部文档的部分):


您应该能够做到这一点;您遇到了什么问题?正如您所看到的,我已经在第一个正文中声明了test_Var。然后我在项目渲染器的datagrid中的第二个正文中设置它的值,例如:test\u Var=data。@field\u value;我收到错误“访问未定义的属性测试变量”似乎缺少一些内容。
DataGrid
itemClick
事件,您可以侦听它并在侦听器函数中执行所需操作。访问项目渲染器内部的
outerDocument
是一种不好的做法,因为有一天您可以重用渲染器。@moropus注意到..我会处理好的..谢谢
private function onClick(evt:Event):void
{
    outerDocument.test_Var = data.@field_value;
}