2011-03-16 102 views
0

定位類創建的顯示對象的簡單問題,把這個類:約在ActionScript 3

package { 
    import flash.display.MovieClip; 

    public class test extends MovieClip { 

     public function test(parentMC) { 
      var s=new MovieClip() 
      s.graphics.lineStyle(1,0x000000,1) 
      s.graphics.drawCircle(200,200,100) 
      parentMC.addChild(s) 
     } 

    } 

} 

爲什麼下面的代碼不動創建圈子,我怎麼可以把它做呢?

var s=new test(stage) 
s.x=500 

謝謝!

回答

2

試試這個:

package 

{ 
    import flash.display.Sprite; 

    public class Test extends Sprite 
    { 

     public function Test() 
     { 
      graphics.beginFill(0xFF0000); 
      graphics.lineStyle(1,0x000000,1); 
      graphics.drawCircle(200,200,100); 
      graphcis.endFill(); 

     }// end function 

    }// end class 

}// end package 

,並實現它是這樣的:

var test:Test = new Test(); 
test.x = 500; 
addChild(test); 

的問題是,你不加入測試的類的地方顯示對象(在Test類的構造函數)添加到Test顯示對象容器,您將它添加到parentMC顯示對象容器。

+0

有道理 - 親切謝謝你! – cronoklee

0

我很確定你沒有從你的函數返回「s」。

public function test(parentMC) { 
      var s=new MovieClip() 
      s.graphics.lineStyle(1,0x000000,1) 
      s.graphics.drawCircle(200,200,100) 
      parentMC.addChild(s) 
      return s; // THIS IS MISSING 
     } 
+0

'test()'方法是'test'類的構造函數,你不能指定構造函數的返回類型。 – Taurayi

+0

我還沒有爲構造函數指定返回類型。 這看起來像這樣。 公共功能測試(parentMC):MoiveClip 您可以從您的構造函數返回值,這是我在這裏完成的。 –