flex4 outerDocument的使用介绍
中定义的 变量仅作用于那个组件/内联 itemRenderer。同样, 外的内容在不同的作用范围内, 就像这个组件是在另一个文件中定义的那样。 例如, 假设您为这个 itemRenderer 添加了一个 Button, 允许用户从在线零售商那里购买书籍。Button 调用它们的 click 事件上的函数, 所以您可以如下定义这个按钮:
<mx:Component> 中定义的
变量仅作用于那个组件/内联 itemRenderer。同样,
<mx:Component> 外的内容在不同的作用范围内,就像这个组件是在另一个文件中定义的那样。
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)" />
<?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>
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。