2011-03-16 9 views
0

このクラスを取る:簡単な質問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

代わりにこれを試してみてください:問題はあなたがTestで(テストのクラスのローカル表示オブジェクトを追加していなかったということでした

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

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 

をし、このようにそれを実装クラスのコンストラクター)を表示オブジェクトコンテナ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

私はコンストラクタの戻り値の型を指定していません。 これは次のようになります。 public function test(parentMC):MoiveClip ここで行ったことはコンストラクタ関数から値を返すことができます。 –