Search code examples
actionscript-3apache-flexactionscriptmxml

1120: Access of undefined property


Why I'm getting a 1120: Access of undefined property arrMonth. error at the line arrMonth.push and how to correct it?

<fx:Script>
    <![CDATA[
        [Bindable]
        public var arrMonth:Array = new Array();

        arrMonth.push({label: "January"});
    ]]>
</fx:Script>

Solution

  • The reason for that error is that your logic (the push statement) is not inside a method, hence it is considered to be at class level (i.e. static) instead of at the instance level.

    Which means there are two ways to fix it:

    1/ Make the variable static too (I suspect this is not what you want, but it will fix the error).

    <fx:Script>
    <![CDATA[
        public static var arrMonth:Array = new Array();
    
        arrMonth.push({label: "January"});
    ]]>
    </fx:Script>
    

    2/ Put the logic in a method, for instance:

    <fx:Script>
    <![CDATA[
        [Bindable]
        public var arrMonth:Array = new Array();
    
        override protected function initializationComplete():void {
            super.initializationComplete();
            arrMonth.push({label: "January"});
        }
    ]]>
    </fx:Script>