2013-08-26 33 views
0

你好親愛的Stackoverflowers!這是我的問題...1120:訪問未定義的屬性 - 將功能移到外部包

我想將我的對象的一些基本功能移動到外部包。

我在名爲mcUnit的庫中有MovieClip項目:它實際上是一個F8 -Ed的移動剪輯矩形。 我正在將AS連接設置爲我想要使用的軟件包:clGameUnit;

這裏是clGameUnit代碼的一部分:

package 
{ 
    import flash.display.MovieClip; 
    import flash.geom.Point; 
    import flash.events.MouseEvent; 

    public class clGameUnit extends MovieClip 
    { 

      // Declaring all local object related variable 
     var clGU:MovieClip = new MovieClip(); 
     var isOver:Boolean = false; 

     // Declaring all global object related variable 
     public var b_u_Selected:Boolean = false; 
     public var p_u_Coordinates:Point = new Point(); 
     public var u_Image:int = 0; 

     //Declaring all object related methods 
     clGU.addEventListener (MouseEvent.CLICK, on_Object_LClick); 
     clGU.addEventListener (MouseEvent.MOUSE_OVER, onObjectMouseOver); 
     clGU.addEventListener (MouseEvent.MOUSE_OUT, onObjectMouseOut); 
     clGU.addEventListener (MouseEvent.RIGHT_CLICK, on_Object_RClick); 

     public function clGameUnit() 
     { 
     } 

       .... 
    } 
} 

和錯誤我明白了:

1120: Access of undefined property clGU. 
1120: Access of undefined property on_Object_LClick. 
1120: Access of undefined property ... [other event listeners functions] 

已經用盡了一切辦法。甚至使得構造函數發送的對象的未定義的屬性clGU:

public function clGameUnit (obj: MovieClip) 
{ 
    clGU = obj; 
} 

而且在時間線上我叫手動此Constructor:

var mcGameObj: clGameUnit = new clGameUnit (mcGUnit); 

mcGUnit是我分配mcUnit實例的實例名稱它在屬性中。 這裏事情變得更加複雜,所以我放棄了這個變體。

如果有需要上傳我的項目,會很高興!

真的需要你的幫助fellaz!

回答

1

把這些行成一個函數

clGU.addEventListener (MouseEvent.CLICK, on_Object_LClick); 
clGU.addEventListener (MouseEvent.MOUSE_OVER, onObjectMouseOver); 
clGU.addEventListener (MouseEvent.MOUSE_OUT, onObjectMouseOut); 
clGU.addEventListener (MouseEvent.RIGHT_CLICK, on_Object_RClick); 

例如

public function clGameUnit() { 
    init(); 
} 

private function init():void { 
    clGU.addEventListener (MouseEvent.CLICK, on_Object_LClick); 
    clGU.addEventListener (MouseEvent.MOUSE_OVER, onObjectMouseOver); 
    clGU.addEventListener (MouseEvent.MOUSE_OUT, onObjectMouseOut); 
    clGU.addEventListener (MouseEvent.RIGHT_CLICK, on_Object_RClick); 
} 
+0

它的工作的人! Domo Arigatou! –

+0

我很高興它幫助:) – Pan