在Haxe使用声音资产

时间:2013-03-01 00:09:52

标签: audio haxe swfmill

我在Haxe玩声音资产时遇到了麻烦。我可以导入带swfmill的mp3而不会出错:

<?xml version="1.0" encoding="utf-8" ?>
<movie width="100" height="100">    
    <frame>     
        <library>
            ... other resources ...
            <sound id="Shoot" import="shoot.mp3"/>
        </library>
    </frame>    
</movie>

在我的Main.hx中,我创建了一个名为Shoot的类,其扩展Movieclip的方式与我用于.png资源的方式相同。然后我按如下方式使用这个类:

var sound:MovieClip = new Shoot();
stage.addChild(sound);
sound.play();

但是在运行时,执行此代码时,我收到错误

"Error #2136: The SWF File <project swf> contains invalid data".

我在swf xml文件或haxe代码中出现的任何明显错误?如何进一步调试此错误?

1 个答案:

答案 0 :(得分:0)

我终于设法通过将它们声明为声音(而不是MovieClips)来播放声音库中的声音

class Shoot extends flash.media.Sound {public function new() { super(); }}

并且你不需要将它们添加到舞台上,只需播放它:

var shoot : flash.media.Sound = new Shoot();
shoot.play();