我已经设置了我的程序来通过XML动态访问实例。
例如:MovieClip(getChildByName(XML_file.child(event.target.name).combine.toString()).visible=true);
...等
现在我想播放一些我用相同的方法声明的声音
基本上每个Movieclip都有自己的XML元素和其他一些标记
<MC_1>
<generate>MC_2</generate>
<sound>Sound1</sound>
...etc
</MC_1>
修改
我正在构建一个简单的点击图形冒险游戏(如猴岛,Grim Fandango,破剑等)
我有一个外部xml文件(puzzle_xml),每个元素对应一个MovieClip(游戏中的一个对象),每个元素都有标签,如(id,generate,description,talk)等。
我试着编写一个代码,允许我通过编辑xml文件来改变对象的交互方式,所以我必须动态访问MovieClips
MovieClip(MovieClip(getChildByName(puzzle_xml.child(puzzle_xml.child(event.target.name).generate).destination.toString())).getChildByName(puzzle_xml.child(event.target.name).generate.toString())).visible=true;
上面的代码工作正常(在MovieClip拖放到另一个上面之后应该可以看到的MovieClip变得可见)
现在,我需要动态播放声音(角色评论)。
this[puzzle_xml.child(targetItem).talk].play();
终于找到了解决方案,嵌套的“getChildByName”没有用。
使用此代码,当我将对象拖到另一个上时,如果它们变得兼容(xml),则会创建一个新对象(可见)并播放声音。使用单个变量(targetItem,即event.target.item)