Omar2002
03.05.2008, 15:04
Не знаю как более правильно сформулировать вопрос, но суть такая:
Есть класс
class Player1 {
private var sound:Sound; //Собственно звук
private var looped:Boolean = true; //Зациклен ли текущий файл
function Player1(track:String, loop:Boolean){
this.sound = new Sound();
this.sound.onLoad = this.isLoade;
this.sound.onSoundComplete = this.isEnded;
this.looped = loop;
this.sound.loadSound("/sound/"+track, true);
}
function isLoade(success:Boolean) {
if (success) {
this.sound.start(0,99999999999);
this.sound.setVolume(50);
}
}
function isEnded(){
if(this.looped){
this.sound.start();
}
}
}
В общем функция isEnded() почему-то не видит this.looped.
Не могу понять в чем дело. Если я все правильно понимаю, то строчка
this.sound.onSoundComplete = this.isEnded; - должна присваивать в качестве функции обработчика события класса sound ссылку на функцию isEnded класса Player1. Или происходит присвоение функции, и она уже не является функцией класса Player1?
Как можно решить эту простую задачу.
Еще раз поясню: Надо при окончании звука проверить свойство looped, и в случае looped==treu; стартовать звук снова.
Есть класс
class Player1 {
private var sound:Sound; //Собственно звук
private var looped:Boolean = true; //Зациклен ли текущий файл
function Player1(track:String, loop:Boolean){
this.sound = new Sound();
this.sound.onLoad = this.isLoade;
this.sound.onSoundComplete = this.isEnded;
this.looped = loop;
this.sound.loadSound("/sound/"+track, true);
}
function isLoade(success:Boolean) {
if (success) {
this.sound.start(0,99999999999);
this.sound.setVolume(50);
}
}
function isEnded(){
if(this.looped){
this.sound.start();
}
}
}
В общем функция isEnded() почему-то не видит this.looped.
Не могу понять в чем дело. Если я все правильно понимаю, то строчка
this.sound.onSoundComplete = this.isEnded; - должна присваивать в качестве функции обработчика события класса sound ссылку на функцию isEnded класса Player1. Или происходит присвоение функции, и она уже не является функцией класса Player1?
Как можно решить эту простую задачу.
Еще раз поясню: Надо при окончании звука проверить свойство looped, и в случае looped==treu; стартовать звук снова.