mx_internal变量读取和设置

来源:互联网 发布:软件需求怎么写 编辑:程序博客网 时间:2024/06/05 07:55

    Flex中很多组件的变量都有mx_internal命名空间,这些变量不能直接访问,只能通过mx_internal来访问。

    那么,什么是mx_internal

    mx_internal is a namespace used by the Flex framework to partition out functions and properties that may change in future releases of the Flex SDK.

       我们如何使用mx_internal

    我们只要可以读取或设置mx_internal变量即可,下述为一个简单的demo

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

              xmlns:s="library://ns.adobe.com/flex/spark"

              xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" width="523" height="154">

    <s:layout>

       <s:BasicLayout/>

    </s:layout>

 

    <fx:Script>

       <![CDATA[

           import mx.core.mx_internal;

           protected function btnOK_clickHandler(event:MouseEvent):void

           {

              txtNum.mx_internal::inputField.restrict = "0-9";

           }

       ]]>

    </fx:Script>

 

    <fx:Declarations>

       <!-- 将非可视元素(例如服务、值对象)放在此处 -->

    </fx:Declarations>

    <s:Panel title="mx_internal变量读取和设置" width="387">

       <mx:NumericStepper id="txtNum" x="105" y="33"/>

       <s:Button id="btnOK" label="显示" x="217" y="35" click="btnOK_clickHandler(event)"/>

    </s:Panel>

</s:Application>

    注意:txtNum.mx_internal::inputField.restrict = "0-9";便是设置inputField变量,使其只能输入0-9的数字。然而我们直接使用txtNum.inputField.restrict = "0-9"程序在编译的时候就会报错:“1178: 试图访问不可访问的属性 inputField (通过 static 类型 mx.controls:NumericStepper 引用)