我做了一个自定义itemRenderer,并需要访问我的项目文件(mxml)中的变量。我如何让我的公共变量在自定义itemRenderer文件中可用?使类vars可用于外部itemRenderer类
public function lang_f(trans_short:String):String{
if(outerDocument.language == "de"){
...
}
}
问候 马库斯
我做了一个自定义itemRenderer,并需要访问我的项目文件(mxml)中的变量。我如何让我的公共变量在自定义itemRenderer文件中可用?使类vars可用于外部itemRenderer类
public function lang_f(trans_short:String):String{
if(outerDocument.language == "de"){
...
}
}
问候 马库斯
你不应该从项目渲染器中访问外部文档数据。它破坏了OOP原则,比如低耦合等。您应该使用数据提供者的数据将此数据设置为项目渲染器,或者扩展基于列表的组件以使用该数据实例化渲染器。不要将MXML组件视为文件。文件结构只是一种表示形式。就应用程序结构而言,您最好将MXML文件视为类或组件。
感谢您的建议,它可能不是很好,但在我的情况下,它是必要的... – Markus 2011-05-17 15:21:11
如果你提供了一些代码,可以有一个解决方案,而不会去黑暗的力量:) – Constantiner 2011-05-17 15:24:58
+1的暗边参考。大声笑 – 2011-05-17 15:26:47
是在主文件中定义的变量你的申请 ?如果是这种情况,您可以访问正在使用FlexGlobals.topLevelApplication.YOUR_VARIABLE_NAME 但我同意君士坦丁堡。这违反了OOP原则。但我希望能解决你的问题。
什么样的变量?这是否适用于所有项目渲染器?变量做什么? – 2011-05-17 15:01:28
public var language:String;它会保存用户的实际语言 – Markus 2011-05-17 15:22:25
为什么语言在项目渲染器中很重要? – 2011-05-17 15:24:04