3

Soundmanager 2(http://www.schillmania.com/projects/soundmanager2/doc/download/)が私のrubyonrailsアプリケーションで機能していません。

?assets_debug = 1を追加した場合にのみ、すべてのsm .jsファイルを試しましたが、アプリを起動するたびに再起動することはできませんでした。

エラー:

soundManager is not defined
[Break On This Error]   

soundManager.setup({

そしてfirebugの中からのJSコードで:

<script>
//<![CDATA[
soundManager.setup({
url: '/assets/',
debugMode: false,
onready: function() {
var mySound = soundManager.createSound({
id: 'aSound',
url: '/assets/start.mp3',
onload: function() { console.log('sound loaded!', this); }
});
mySound.play();
},
ontimeout: function() {
}
});
//]]>
</script> 

なぜこれが起こるのか誰かが考えていますか?

4

1 に答える 1

1

jsには、生のソースファイルと、Rails 3アセットパイプラインで使用するために作成されたコンパイル済みファイル(縮小、連結など)の2つのバージョンがある可能性があります。

JSの微妙なバグにより、コンパイルプロセスで無効なコードが生成されることがあります(たとえば、ファイルが改行で終わっておらず、別のファイルが追加されている場合など)。で実行する場合assets_debug=1、影響を受けない生のソースファイルを使用するようにRailsに指示します。

これをデバッグするのは困難です。FirebugデバッガーでもChromeデバッガーでも、縮小されたコードはせいぜい読みにくいものです。しかし、それはあなたに手がかりを与える可能性があります。

もう1つの考えられる原因は、Railsのデフォルトとsoundmanagerで使用されるバージョンとのjQueryバージョンの違いに対する未解決の依存関係です。jQueryのどのバージョンが機能しているかを確認することをお勧めします。ただし、報告されたエラーは、これが原因であることを示唆していません。

最後に、ファイル内で実際の依存関係が満たされていることを確認しapp/assets/javascripts/application.jsます。おそらく、これらの行の前後で項目が指定される順序を変更します。これは実際にはコメントではありません:-)

//= require jquery
//= require jquery_ujs
于 2012-11-08T21:00:33.557 に答える