오디오가 coffeescript로 끝날 때 함수를 호출하려고하는데 코드를 자바 스크립트로 처리하면 완벽하게 작동하지만 coffeescript에서는 작동하지 않습니다.coffeescript에서 오디오 onended 이벤트를 만드는 방법
다음은 coffeescript의 전체 코드입니다.
play:() ->
if (@getConfig "musicPath") != "../audioclips/backgroundmusics/"
@pathtoMusic = @getConfig "musicPath"
else
@pathtoMusic = path.join(__dirname, @getConfig "musicPath")
@musicFiles = fs.readdirSync(@pathtoMusic.toString())
@music = new Audio(@pathtoMusic + @musicFiles[0])
@music.volume = @getConfig "musicVolume"
@isPlaying = false if (@music.paused)
return null if @isPlaying
@isPlaying = true
@music.play()
@music.onended = ->
@music.play() //-----Here doesn't work------//
저는 원자 문자 편집기를 사용하여 패키지의 coffeescript 코드를 럼 (rum)하고 크롬 코드는 자바 스크립트 코드를 사용하고 있습니다.
자세한 내용은 다음을 참조하십시오. 원자에 onended 이벤트를 사용하는 패키지를 보았습니다. 여기 코드가 있습니다.
'use babel';
epicVictory() {
if (this.isPlaying) return
console.log('Epic Victory!');
let maxIndex = this.winFiles.length - 1
let minIndex = 0
let randomIndex = Math.floor(Math.random() * (maxIndex - minIndex + 1) + minIndex)
this.audio = new Audio(this.winpath + this.winFiles[randomIndex])
this.audio.onended =() => {
this.audio.play() //-------here work-----//
//this.isPlaying = false
}
this.isPlaying = true
this.audio.volume = this.volume
this.audio.play()
return true
},
코드 챔피언 나는 온라인 변환기를 사용하여 자바 스크립트로 바벨 코드를 변환 나는이 있어요. 자바 스크립트
//imput
this.music.onended =() => {
this.audio.play()
}
//ouput
this.music.onended = function() {
this.music.play();
};
에
이바벨 그럼 컴파일러를 커피 스크립트에 자바 스크립트 코드를 변환 나는이 있어요.
자바 스크립트
//imput this.music.onended = function() { this.autoPlay(); } //ouput @music.onended = -> @music.play()
를 커피 스크립트합니다 그러나 코드는 바벨에서 작동합니다. 나는 내가 뭘 잘못하고 있는지 몰라.
오디오는 정상적으로 재생되지만 오디오가 끝나면 아무 작업도 수행하지 않습니다. –