actionscript-3 - 无法扩展 Sound 对象原型(prototype)

标签 actionscript-3 flash object audio prototype

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

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

我收到此错误消息:

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

我不知道该怎么办。

谢谢你的时间。

最佳答案

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

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

您想要做的是创建一个扩展 Sound 的类并保存您想要包含的任何扩展功能。这个新类(class)将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

关于actionscript-3 - 无法扩展 Sound 对象原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12983782/

相关文章:

javascript - 将数据从 Javascript 传递到 Flex 时出现问题

javascript - 将新对象添加到多维数组

javascript - 如何检查 javaScript 中对象数组中是否存在某个值?

java - 无需变量赋值的对象创建

apache-flex - 在 Flex 中转换到接口(interface)时出现问题

apache-flex - Flex 中带有 $ 前缀的属性

actionscript-3 - 如何在 Emacs 中控制左括号后的缩进

flash - 垃圾回收在 AS3 中是如何工作的?

apache-flex - 裁剪/剪辑 Sprite

ios - 找不到目标平台的应用程序所需的 native 扩展 'file' 的实现