加载数据时会在adobe flex中禁用所有组件

时间:2010-09-27 13:25:44

标签: flex

我有一个垂直标签栏,其中包含4个不同子标签的项目。所有这四个项目都使用来自单个xml文件的数据,这是一个大文件。当用户单击选项卡时,在加载数据时会显示此错误。

TypeError: Error #1009: Cannot access a property or method of a null object reference.

我想在加载xml文件时禁用所有选项卡。

3 个答案:

答案 0 :(得分:1)

您可以将主应用程序设置为已禁用;这应该禁用所有孩子。使用enabled属性并将其设置为false。如果您也想停止鼠标交互,请务必将mouseEnabled属性设置为false。

答案 1 :(得分:0)

您可以显示将阻止所有事件的叠加组件。加载所有数据后,可以删除叠加层。

使其更酷,叠加可以使背景部分透明。

答案 2 :(得分:0)

通过绑定到您正在使用的数据上的getter和setter来控制启用/禁用属性。例如:

<mx:Script>
    <![CDATA[
        [Bindable]
        public var myParsedXML:Object;

        private var _myData:Object;

        public function set myData(value:Object):void
        {
            //Check for null
            if(value)
            {
                myTabs.enabled = true;
            }
            else
            {
                myTabs.enabled = false;
            }
            _myData = value;
        }

        public function get myData(value:Object):void
        {
            return _myData;
        }
    ]]>
</mx:Script>
<mx:Binding source="myParsedXML" destination="myData" />
<mx:TabNavigator id="myTabs">
    <mx:VBox label="tab 1">

    </mx:VBox>
    <mx:VBox label="tab 2">

    </mx:VBox>
</mx:TabNavigator>    

创建此属性后,您可以绑定它,并确保在设置数据时通知它。