윈도우7과 Sound 객체의 문제
http://help.adobe.com/ko_KR/AS3LCR/Flash_10.0/flash/media/Sound.html#play()
일단 공식문서를 보시면 아래와 같은 반환 값에 대한 설명이 있습니다.
반환값
SoundChannel — 사운드 제어에 사용하는 SoundChannel 객체입니다. 사운드 카드가 없거나 사용 가능한 사운드 채널이 없을 경우, 이 메서드는 null을 반환합니다. 동시에 사용할 수 있는 사운드 채널의 최대 수는 32개입니다.
원래 SoundChannel 자체는 Sound.play()의 반환값으로 얻게 됩니다. 하지만 사운드 카드가 없는 경우 아예 null을 반환하기 때문에 이후 여기서 생성된 SoundChannel을 이용하여 음량을 조절하거나 위치를 이동하는 등의 모든 행위는 null객체 접근 에러가 되어버립니다.
제가 특별히 윈도우7을 지목하는 이유는 이 OS에 재밌는 기능이 들어있기 때문입니다. 사운드카드가 있음에도 불구하고 연결된 스피커나 이어폰이 전혀 없는 경우 윈도우7이 스스로 사운드카드를 비활성화시키는 기능을 갖고 있습니다.
일반적인 노트북의 경우 이어폰을 연결하지 않아도 무조건 스피커가 연결되어있는 상태이기 때문에 경험하기 어려울 수 있습니다만, 데스크탑에서 스피커도 이어폰도 연결되지 않는 경우 사운드채널을 이용하는 어플이 무조건 적으로 다운되는 경우가 많습니다.
따라서 사운드 채널을 사용하는 어플은 반드시 사용 전에 널객체 조건으로 검사를 한 뒤 사용하도록 소스를 고쳐야합니다.
