Content.Load在当前上下文中不存在

时间:2012-12-05 07:46:54

标签: c# xna

我正在阅读关于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"); 
            }
     }
}

我已经成功添加了引用(或者至少我认为我有)。任何想法为什么会发生这种情况?谢谢!

3 个答案:

答案 0 :(得分:7)

Content 是一个属性,通常引用ContentManager类中的Game类型的实例。由于您的SoundTouchTest课程不是Game,因此没有该属性

您应ContentManager实例作为参数传递到loadContent()方法:

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

Game班级内的某个地方:

SoundTouchTest soundTouchTest = new SoundTouchTest();
soundTouchTest.loadContent(this.Content);

答案 1 :(得分:2)

你可以通过loadContent将ContentManager作为参数传递,然后在game1中找到的load方法中调用loadContent,或者你可以创建一个新的实例(我不建议,你不想要每当你需要在为你创建对象时加载某些东西时创建一个新对象。

答案 2 :(得分:0)

而不是Content.Load,它应该是ContentManager.Load

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

您可能需要创建一个Content Manager实例才能使用它