2012-01-31 10 views
2

ここではまったく新しいコード作成者ではありませんが、かなり新しいflixel/AS3ユーザーです。とにかく、エラーはそれが原因ではかなり簡単ですが、解決策ではありません。AS3/Flixel: "おそらく未定義のプロパティのアクセス"

"エラー:静的型org.flixel:FlxSpriteを持つ参照によって、おそらく未定義のプロパティへのアクセス。

プロパティはscrap.selectedで2回、scrap.distanceToMouseで4回スローされます - 私はコメントにエラーが発生した各行をマークしました。

私はWebとStackOverflowを特に検索しました。それはかなり一般的な問題のように見えますが、私は特定の状況にどのような解決策も適用できませんでした。とにかく、ここに関連するコードは、私は(希望)が、これを解決するために必要だとすべてのですが、私は思う

ScrapManager.as

if (FlxG.mouse.pressed) 
    { 
     var ClosestDistance:int = 500; 
     for each (var scrap:FlxSprite in this) 
     { 
      scrap.selected = false; //error here!~ 
      var dx:int = scrap.x - FlxG.mouse.screenX; 
      var dy:int = scrap.y - FlxG.mouse.screenY; 
      scrap.distanceToMouse = (dx * dx) + (dy * dy); //error here!~ 

      if (scrap.distanceToMouse < ClosestDistance) //error here!~ 
      { 
       ClosestDistance = scrap.distanceToMouse; //error here!~ 
      } 
     } 
     for each (var scrap:FlxSprite in this) 
     { 
      if (scrap.distanceToMouse == ClosestDistance) //error here!~ 
      { 
       scrap.selected = true; //error here!~ 
      } 
     } 
    } 

Scrap.as

package 
{ 
    //import stuff... 

    public class Scrap extends FlxExtendedSprite 
     { 
      public var selected:Boolean = false; 
      public var distanceToMouse:int; 
      //and more stuff... 

...です必要に応じてもっと喜んで提供してください。読んでくれてありがとう。 :D

答えて

1
for each (var scrap:FlxSprite in this) 

"this"のすべてのプロパティがFlxSpriteのインスタンスであることは確かですか?たぶんあなたはScrapManagerの中にFlxSpritesのコレクションを格納し、それらの代わりにループする必要がありますか?

これらのループで「スクラップ」をトレースして、正しいデータ型であることを確認することをお勧めします。そうであれば、まだそれらのエラーを出しているので、問題を与えている特定のオブジェクトに絞り込むことができます。

+0

Oh fu-私は完全に忘れましたが、ScrapをFlxExtendedSpriteに変更しました。私はおそらくそれを混乱させるだろうと思う?今は自分のコードにアクセスできませんが、うまくいけばそれを修正します。ヒントをお寄せいただきありがとうございます。< –

+0

完了したら正解をマークしてください。スタックオーバーフローへようこそ! –

+0

アハ!あなたの答えは、私が思ったよりもさらに近かった。私はFlrapSpriteを見ていたので、Scrap内の変数にアクセスすることができなかったと思います(彼らはどこにいなかったのですか?存在しない)、そうですか?どうもありがとうございました!それはまだかなり働いていませんが、それは私の数学のためです。それはすべてエラーフリーです! –

1

私の推測は、(a)FlxSpriteを静的に変更したか、(b)Scrapクラスが静的であるかのいずれかです。

+0

残念ながら、 "Static"は、Scrap、ScrapManager、FlxSprite、FlxExtendedSpriteで述べたほどではありません。しかし、とにかくありがとう。 –

関連する問題