加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flex4 outerDocument的使用介绍

发布时间:2020-12-15 03:42:32 所属栏目:百科 来源:网络整理
导读:mx:Component 中定义的 变量仅作用于那个组件/内联 itemRenderer 。同样, mx:Component 外的内容 在不同的作用范围内,就像这个组件是在另一个文件中定义的那样。 ? 例如,假设您为这个 itemRenderer 添加了一个 Button,允许用户从在线零售商那里购买书籍。But
<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>  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读