我是编程新手。我需要向Sound对象添加新属性,但我无法使其工作。这就是我正在做的事情:
S31 = new Sound();
S31.load(new URLRequest("mp3/S31.mp3"));
Sound.prototype.correctas = 0;
trace(S31.correctas);
我收到此错误消息:
“1119:通过静态类型flash.media:Sound”的引用访问可能未定义的属性。
我不知道该怎么办。
感谢您的时间。
答案 0 :(得分:1)
原型类确实没有在as3中使用(如果我在这里错了,请有人纠正我,我知道它的包含但是我不确定你为什么要使用它。)
您可以创建dynamic类,允许您在运行时向它们添加属性,但在这种情况下,我会坚持使用OOP。
您要做的是创建一个扩展Sound的类,并保存您想要包含的任何扩展功能。这个新类将inherit基本Sound类的所有功能。
尝试creating a new AS3 class并让它扩展声音
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