flex 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>

相关文章

一:display:flex布局display:flex是一种布局方式。它即可以...
1. flex设置元素垂直居中对齐在之前的一篇文章中记载过如何...
移动端开发知识点pc端软件和移动端apppc端软件是什么,有哪些...
最近挺忙的,准备考试,还有其他的事,没时间研究东西,快周...
display:flex;把容器设置为弹性盒模型(设置为弹性盒模型之后...
我在网页上运行了一个Flex应用程序,我想使用Command←组合键...