希望我能很好地闡述這個問題。我正在研究Titanium Desktop中的一個簡單的音頻播放器。我專注於眼下的主要代碼如下:在JavaScript中的函數之間傳遞變量(鈦工作室桌面)
function pickMusicFolder(){
var win = Titanium.UI.getCurrentWindow();
win.openFolderChooserDialog(function(folderResponse) {
var file = Titanium.Filesystem.getFile(folderResponse[0]);
var listing = file.getDirectoryListing();
for (var i = 0; i < listing.length; i++) {
if (listing[i].isDirectory()) {
// if the listing is a directory, skip over it
$('#main').append('DIRECTORY: ' + listing[i].nativePath() +
'<br />');
// continue;
}
else {
// otherwise, print the filename of the file to the #main content window
var songOnList = listing[i].nativePath();
var songURL = songOnList.replace(/\\/g,"/");
$('#main ul').append('<li><a href="javascript:playSong(\'' + songURL + '\')">' + songURL + '</a></li>');
}
}
});
};
function playSong(songURL){
var currentSong = Titanium.Media.createSound(songURL);
currentSong.play();
this.stopPlayback = stopPlayback;
function stopPlayback(currentSong){
currentSong.stop();
}
}
然後相關的HTML:
<input type="image" src="img/player_stop.png" name="stopPlayback" onClick="playSong.stopPlayback(songURL)" />
<input type="image" src="img/folder_add.png" name="pickMusicFolder" onClick="pickMusicFolder()" />
現在,無論pickMusicFolder和playSong本身正常工作。但是,stopPlayback無法正常工作,我很難掌握如何處理播放和停止音頻的不同功能,因爲生成可點擊鏈接的代碼完全在pickMusicFolder函數中進行了劃分,而停止代碼播放只附加到一個單獨的界面按鈕。
我只需要訪問多個函數之間的songURL變量,以便能夠在播放(或不播放)的同時對一首單曲進行操作。我避免訴諸全局變量,因爲我發現這是一個警察出局。
任何人有任何想法?任何提示都非常感謝! (呵呵,請忽略我的醜陋的代碼;在發佈前試圖一羣黑客-Y的解決方案。)
對不起,也許我不清楚:我需要我的「停止」按鈕,我的HTML代碼段中顯示的代碼停止播放當前正在播放的歌曲。我不完全確定如何將songURL屬性附加到playSong幫助我? –
我是編輯代碼,在playSong函數的第二行中,我們存儲了在屬性中播放的歌曲以及在stopPlayback中使用此屬性 –
噢,我的天啊。非常感謝,作品像魅力! –