本文主要是介绍flex4 outerDocument的使用介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
<mx:Component> 中定义的 变量仅作用于那个组件/内联 itemRenderer。同样, <mx:Component> 外的内容在不同的作用范围内, 就像这个组件是在另一个文件中定义的那样。例如, 假设您为这个 itemRenderer 添加了一个 Button, 允许用户从在线零售商那里购买书籍。Button 调用它们的 click 事件上的函数, 所以您可以如下定义这个按钮:
Xml代码<mx:Button label="Buy" click="buyBook(data)" />
如果在文件的 <mx:Script> 块中定义 buyBook() 函数, 会显示一个错误, 指出 buyBook() 是一个未定义的方法。这是因为 buyBook() 是在文件的作用范围内而不是在 <mx:Component> 的作用范围内定义的。由于这是一个典型用例, 使用 outerDocument 标识符可以避开这个问题:
Xml代码
<mx:Button label="Buy" click=" outerDocument.buyBook(data)" />
outerDocument 标识符将作用范围更改为查找文件或外部文档, 并引用 <mx:Component>。现在请注意: 这个函数必须是公共函数, 而不是受保护或私有函数。记住, <mx:Component> 被视为外部定义的类。
举例说明
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:local="*" layout="absolute" > <mx:Script> <![CDATA[ import mx.controls.CheckBox; import mx.controls.Alert; [Bindable] private var dp:Array = [ {idx:1, names: "test1", sex: "b" }, {idx:2, names: "test2", sex: "g" } ]; public function doSelect(o:Object):void { Alert.show("选择了"+o.idx+"/"+o.names+"/"+o.sex); } ]]> </mx:Script> <mx:DataGrid id="dg1" dataProvider ="{dp}"> <mx:columns> <mx:DataGridColumn width="20" headerText="" > <mx:itemRenderer> <mx:Component> <mx:CheckBox change=" {outerDocument.doSelect(data as Object)} " /> </mx:Component> </mx:itemRenderer> </mx:DataGridColumn> <mx:DataGridColumn headerText="names" dataField="names" width="200" /> <mx:DataGridColumn headerText="sex" dataField="sex" width="300" /> </mx:columns> </mx:DataGrid> </mx:Application>
这篇关于flex4 outerDocument的使用介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!