0

我是编程新手。我需要向 Sound 对象添加新属性,但我无法让它工作。这就是我正在做的事情:

S31 = new Sound();
S31.load(new URLRequest("mp3/S31.mp3"));
Sound.prototype.correctas = 0;
trace(S31.correctas);

我收到此错误消息:

“1119:通过静态类型 flash.media:Sound 的引用访问可能未定义的属性更正”。

我不知道该怎么办。

谢谢你的时间。

4

1 回答 1

1

as3 中确实没有使用原型类(如果我在这里错了,请有人纠正我,我知道它包含但我不确定你为什么要使用它。)

您可以创建动态类,允许您在运行时向它们添加属性,但在这种情况下,我会坚持使用 OOP。

您想要做的是创建一个扩展 Sound 的类并保存您想要包含的任何扩展功能。这个新类将继承基础 Sound 类的所有功能。

尝试创建一个新的 AS3 类并让它扩展 Sound

package src {
import flash.media.Sound;
import flash.media.SoundLoaderContext;
import flash.net.URLRequest;

    public class MySound extends Sound{

    public var correctas:Number; //assuming you are using a Number here          

    //sound takes two params in its constructor 
    public function MySound(stream:URLRequest=null, context:SoundLoaderContext=null){
    //super passes these params to the super class
        super(stream, context);
     }
}

现在要使用它,您将创建一个新的 MySound 对象而不是 Sound

 var s31:MySound = new MySound();
 s31.load(new URLRequest("mp3/S31.mp3"));
 s31.correctas = 0;
 trace(s31.correctas) //will be 0
于 2012-10-20T01:05:39.577 回答