2011-05-17 58 views
2

我做了一个自定义itemRenderer,并需要访问我的项目文件(mxml)中的变量。我如何让我的公共变量在自定义itemRenderer文件中可用?使类vars可用于外部itemRenderer类

public function lang_f(trans_short:String):String{ 
     if(outerDocument.language == "de"){ 
      ... 
     } 
    } 

问候 马库斯

+0

什么样的变量?这是否适用于所有项目渲染器?变量做什么? – 2011-05-17 15:01:28

+0

public var language:String;它会保存用户的实际语言 – Markus 2011-05-17 15:22:25

+0

为什么语言在项目渲染器中很重要? – 2011-05-17 15:24:04

回答

2

要使用outerDocument与Constantiner的答案走,如果你仍然需要访问该变量,你可以在你的itemRenderer访问变量:

outerDocument.myVariableName

+0

感谢您的提示,不幸的是它没有工作:1120:访问未定义的属性可绑定的外部文档 – Markus 2011-05-17 15:20:07

+0

@Markus你能发布你的代码不工作的部分吗? – 2011-05-17 15:22:05

+0

我添加了我的itemRenderer上面的代码 – Markus 2011-05-17 15:25:24

3

你不应该从项目渲染器中访问外部文档数据。它破坏了OOP原则,比如低耦合等。您应该使用数据提供者的数据将此数据设置为项目渲染器,或者扩展基于列表的组件以使用该数据实例化渲染器。不要将MXML组件视为文件。文件结构只是一种表示形式。就应用程序结构而言,您最好将MXML文件视为类或组件。

+0

感谢您的建议,它可能不是很好,但在我的情况下,它是必要的... – Markus 2011-05-17 15:21:11

+1

如果你提供了一些代码,可以有一个解决方案,而不会去黑暗的力量:) – Constantiner 2011-05-17 15:24:58

+0

+1的暗边参考。大声笑 – 2011-05-17 15:26:47

0

是在主文件中定义的变量你的申请 ?如果是这种情况,您可以访问正在使用FlexGlobals.topLevelApplication.YOUR_VARIABLE_NAME 但我同意君士坦丁堡。这违反了OOP原则。但我希望能解决你的问题。