2012-04-03 2 views
0

こんにちは私は、バブルポップゲームのためにここにactionscriptコードを持っています。ゲームが始まると、ゲームのトップからボトムまで泡が落ち、30秒後にクリックまたはポップされたほとんどの泡のスコアが保持されます。バブルポップゲームActionscript:静的型クラスのリファレンスを使ってToString()メソッドを定義する

バブルのサイズは、コード内のinitializeメソッドで定義され、ToString()を使用してスコアを計算します。 ToStringは私に1061を与えます:おそらく定義されていないメソッドを呼び出します。このエラーはどこから来たのか分かりません。

AS3での経験をお持ちの方なら、私の不具合の指摘をすることができたら、私は大変感謝しています。ありがとうございました。

package { 
    import flash.display.MovieClip; 
    import flash.events.Event; 
    import flash.media.Sound; 

    public class Ball extends MovieClip{ 

     static public var burstCounter: uint; 
     private var vx: Number; 
     private var vy: Number; 
     private var gravity: Number; 
     private var stageWidth; 
     private var stageHeight; 
     private var bubble:Ball = new Ball(); 
     private var score: uint=0; 

     public function Ball() { 
      bubble.addEventListener(Event.ADDED_TO_STAGE, initialize) 
      bubble.addEventListener(MouseEvent.CLICK, burst) 
      bubble.addEventListener(Event.ENTER_FRAME, dropping) 
     } 

     public function initialize (e:Event):void 
     { 
      bubble.x = Math.random() * stageWidth; 
      bubble.y = 0; 

      stageWidth = stage.stageWidth; 
      stageHeight = stage.stageHeight; 

      bubble.vx = Math.random() * 2 - 1; 
      bubble.vy = Math.random() * 2 + 1; 
      gravity = 0.1; 

      var sizeScale = Math.random() * 1.2 + .6; 
      bubble.scaleX = bubble.scaleY = sizeScale; 
      score = (10/sizeScale); 
      scoreValue.text = score.ToString(); 

      var colorTran = new ColorTransform(); 
      colorTran.color = Math.random() * 0xFFFFFF; 
      transform.colorTransform = colorTran; 
      addChild(bubble); 
     } 
     function dropping(e: Event) :void 
     { 
      x += vx; 
      y += vy; 
      vy += gravity; 

      if((x<0) || (x>stageWidth) || (y<0) || (y>stageHeight)) 
      { 
       if(parent != null) 
       { 
        parent.removeChild(this); 
       } 
       removeEventListener(Event.ENTER_FRAME, dropping) 
      } 
     } 
     function burst (e:Event):void 
     { 
      var ballonPopping: Sound = new BalloonPopping(); 
      bubble.removeEventListener(Event.ADDED_TO_STAGE, initialize); 
      bubble.removeEventListener(Event.ENTER_FRAME, dropping); 
      removeChild(bubble); 

      ballonPopping.play(); 

      burstCounter += score; 
     } 
    } 

} 

答えて

0

Math.random()をお試しください。.. .sinceそれはあなただけの誤差がどの程度似ているかを

toString() 

お知らせをお試しくださいToStringメソッド()

ためにこの質問を編集したように見えます。あなたはこれらの両方に存在しないメソッドを呼びたいと思っています。大文字と小文字の区別VARはvarと同じではありません

+0

は、 'trace(myObj)'を書くときに 'toString()'が自動的に呼び出されるので、 'ToString'より常に' toString'を優先します。これを使用して、[Object object]で出てくるのではなく、どこでも 'trace(myObj.ToString())'を呼び出さなくても、あなたのオブジェクトに関する有益な情報を得ることができます – divillysausages

1

あなたは

Math.Random() 

Math.random() 

にノート小文字のrを

または各出現を変更する必要があります...代わりに

0

uint ToString()メソッドはありませんが、toString()もあります。

メソッド名に大文字と小文字が重要です。 :)

0

は&呼び出しプロパティやメソッドに名前を付けるときケーシングは問題ないことを注意して。

ActionScriptは、staticを含むメンバーのためにpascalCasingをメンバーとして使用します。定数はALL_CAPSを使用します。

あなたが行っていたように、私はActionScriptの中でCamelCasingを使用しているクラスメンバーを考えることはできません。私が知っている限り、何もありません。

関連する問題