В Flash MX вы можете загружать внешний mp3-файл в flash-клип, используя метод
Sound.loadSound(). В последней версии Flash Player 6 (имеется в виду версия 6.0.47.0
- прим. перев.) можно получить доступ к тэгам ID3, вшитым в файл mp3. К сожалению,
вы не сможете прочитать значения тэгов ID3 в файле mp3, пока он не загрузится
!полностью!. В этом нет ничего страшного, пока вы используете метод Sound.attachSound(),
но вызывает проблемы, если вы начинаете загружать в проигрыватель внешний звук.
Когда внешний звук полностью загрузится в проигрыватель, должен проиграться
один кадр, прежде чем вы сможете получить значения тэгов ID3 из mp3. Это означает,
что нельзя получить значения тэгов ID3 в обработчиках событий onLoad
для объектов класса Sound. Вот пример кода, демонстрирующий, как
получить доступ к значениям тэгов ID3 внешнего mp3-файла, загруженного в Flash
Player, используя метод Sound.loadSound():
//создаем событие onEnterFrame со свойствами Слушателя
ASBroadcaster.initialize(Movieclip);
_root.createEmptyMovieClip("__enterFrame",-9799);
__enterFrame.onEnterFrame=function(){
Movieclip.broadcastMessage("onEnterFrame");
}
mysound=new Sound(this);
mysound.loadSound("an_mp3.mp3");
mysound.onLoad=function(){
Movieclip.addListener(this);
//переопределяем обработчик события onLoad
this.onLoad=function(){
//обрабатываем в цикле все ID3-тэги
//и трассируем пары свойство:
значение
for(var i in this.id3){
trace(i+":"+this.id3[i]);
}
}
//когда получено сообщение onEnterFrame,
//вызвать заново определенный обработчик события
//onLoad, а затем прекратить слушать сообщения
this.onEnterFrame=function(){
this.onLoad();
Movieclip.removeListener(this);
delete this.onEnterFrame;
}
}
То же самое можно сказать и о двух других свойствах звукового объекта —
Sound.duration и Sound.position (общая длина звука и
положение проигрывающей головки в данный момент.) Вы не сможете прочитать эти
свойства до того, как будет проигран один кадр после загрузки всего звука. Можно
использовать описанный выше процесс, чтобы извлекать значения этих двух свойств[1].
[новое окно]>