Не знаю насколько это актуально, но на такие грабли я наткнулся.
Опишу чуть поподробнее: звук во внутренней библиотеке flash-ролика не проигрывался, причём никак не проигрывался, объявлял ли я внешний класс в коде или использовал инструменты стандартной библиотеки Reflect и Type, компилировал импортируемую библиотеку при помощи FlashIDE или swfmill, только выдавал разнообразные ошибки.
привожу самый простой код:
packege game.sounds;
import flash.media.Sound;
class Sound0 extends Sound {}
class NewClass {
public function new() {
var s:Sound = new Sound0();
s.play();
}
}
код для swfmill:
<?xml version="1.0" encoding="utf-8"?>
<movie version="9" width="800" height="600" framerate="31">
<background color="#000000" />
<frame>
<library>
<sound id="Sound0" import="click2.mp3" />
</library>
</frame>
</movie>
Как оказалось камень здесь был (была зарыта собака) в том, что класс Sound0 находится в game.sounds.
А компилировал библиотеку без учёта этого момента, и когда указал, что имя звука в библиотеке будет game.sounds.Sound0, как оно тут же заработало без лишних вопросов.
Исправленный код для swfmill:
<?xml version="1.0" encoding="utf-8"?>
<movie version="9" width="800" height="600" framerate="31">
<background color="#000000" />
<frame>
<library>
<sound id="game.sounds.Sound0" import="click2.mp3" />
</library>
</frame>
</movie>