2011-03-28 75 views
0

我一直在撞牆我試圖找出我要去哪裏錯了,但沒有運氣。Flex4錯誤1120當訪問方法

我收到錯誤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; 
     } 

    } 
} 

與爲什麼我收到此錯誤任何幫助將非常感激。

回答

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> 
+0

這個看似工作未定義的屬性訪問..猜測將函數內的所有內容都固定在某個地方。無論哪種方式_thank you_ – SS44 2011-03-28 22:27:22

1
g.name = "name"; 

setter函數不應該像函數那樣調用。

+0

當我試圖上面我仍然得到錯誤_1120:G_ – SS44 2011-03-28 22:24:12