2

SoundEffectに関するこのチュートリアルを実行しています:http://msdn.microsoft.com/en-us/library/bb195053.aspxただし、コンパイラから「コンテンツ」がに存在しないというエラーが表示されます。現在のコンテキスト。

コードは次のとおりです。

using Microsoft.Xna.Framework.Audio; 
using Microsfot.Xna.Framework.Content;

namespace SoundTouchTest 
{
     class SoundTouchTest
     {
            public void loadContent()
            {
                  SoundEffect s; 
                  s = Content.Load<SoundEffect>("example"); 
            }
     }
}

私は正常に参照を追加しました(または少なくとも私は持っていると思います)これがなぜ起こっているのか考えはありますか?ありがとう!

4

3 に答える 3

8

Content 通常、クラスContentManager内の型のインスタンスを参照するプロパティです。クラスはではないGameので、そのプロパティはありませんSoundTouchTestGame

インスタンスをパラメータとしてメソッドに渡す必要がありContentManagerます。loadContent()

void loadContent(ContentManager content)
{
    SoundEffect e = content.Load<SoundEffect>("example");
}

Gameクラス内のどこか:

SoundTouchTest soundTouchTest = new SoundTouchTest();
soundTouchTest.loadContent(this.Content);
于 2012-12-05T15:01:11.803 に答える
2

loadContentを介してパラメーターとして渡しContentManager、game1にあるloadメソッドでloadContentを呼び出すか、その新しいインスタンスを作成することができます(これはお勧めしませんが、毎回新しいオブジェクトを作成することはお勧めしません。オブジェクトがすでに作成されているときに何かをロードする必要があります)。

于 2012-12-05T12:49:54.870 に答える
0

Content.Loadの代わりに、実際にはContentManager.Loadにする必要があります

http://msdn.microsoft.com/en-us/library/bb197848.aspx

コンテンツマネージャのインスタンスを作成する必要がある場合がありますが、それを使用するには

于 2012-12-05T08:20:58.357 に答える