【问题标题】:Flex4 Error 1120 when accessing method访问方法时出现 Flex4 错误 1120
【发布时间】:2011-03-28 06:34:44
【问题描述】:

我一直在用头撞墙,试图找出我哪里出了问题,但没有运气。

我收到错误 1102: 1120:访问未定义的属性 g。在以下文件中:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" title="Home">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>

    <fx:Script>
        <![CDATA[
            import ca.ss44.pabhi.Player;

            var g:Player = new Player();
            g.name( "name" );

        ]]>
    </fx:Script>
</s:View>

我的玩家等级:

package ca.ss44.pabhi
{
    public class Player
    {
        private var _name:String; //Players name
        private var _cards:Array;

        public function Player()
        {
            //Sets up the current player, players be default have no cards.
            _cards = new Array();
        }

        /**
         * Retrn an array of all cards that the play currently holds.
         */
        public function getCards():Array{ return new Array(); }

        //Adds a card to the players
        public function addCard( card:Card ):void{

        }

        //Drop a card from the players hand.
        public function dropCard( card:Card ):void{

        }

        public function set name( value:String ):void{
            _name = value;
        }

        public function get name():String{
            return _name;
        }

    }
}

任何有关我为什么会收到此错误的帮助将不胜感激。

【问题讨论】:

    标签: actionscript-3 apache-flex flex4


    【解决方案1】:

    除了 setter 问题,您的代码直接放在 Script 块中。这是类声明的地方,而不是框架中的顺序代码。您应该将其放入连接到某个事件的函数中 - 例如,initialize 组件的事件:

    <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
            xmlns:s="library://ns.adobe.com/flex/spark" title="Home"
            initialize="init()">
    <fx:Script>
            <![CDATA[
                private function init():void
                {
                    import ca.ss44.pabhi.Player;
                    var g:Player = new Player();
                    g.name = "name";
                }
            ]]>
        </fx:Script>
    

    【讨论】:

    • 这似乎奏效了。猜测将所有内容都放在函数中修复了某个范围内的错误。不管怎样谢谢你
    【解决方案2】:
    g.name = "name";
    

    setter 函数不应像函数一样被调用。

    【讨论】:

    • 当我尝试上述方法时,我仍然收到错误 1120: Access of undefined property g
    猜你喜欢
    • 2017-11-04
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 2014-10-17
    相关资源
    最近更新 更多