0
我想我必須在這裏錯過一步;我有不同的數據從一個從xml創建的數組中取出,這取決於一個變量(_currentTrackNum)..並且如果我爲它設置了不同的初始值,則數據會發生變化;但是如果我在程序初始化後更改變量,即使我使用更改後的變量重新運行調用,也不會更改任何數據。如何從AS3.0/Flex中的數組更新導入數據?
<s:HTTPService id="playlistxml" url="playlist.xml" result="init(event)" fault="noData(event)" />
<fx:Script>
<![CDATA[
private var _currentTrackNum:int;
public var playlistdata:ArrayCollection = new ArrayCollection();
public var locationarray:Array = new Array();
private function init(event:ResultEvent):void
{
playlistdata = event.result.playlist.track;
for (var i:Number=0;i<playlistdata.length;i++){
locationarray.push(playlistdata[i].location);
}
_currentTrackNum = 0;
_soundObj = new Sound();
_soundObj.load(new URLRequest(locationarray[_currentTrackNum]));
_soundChannel = new SoundChannel();
private function playSound():void
{
_soundChannel = _soundObj.play();
_isPlayingSound = true;
}
private function nextTrack():void
{
if(_currentTrackNum != locationarray.length()){
_currentTrackNum ++;
_soundObj.load(new URLRequest(locationarray[_currentTrackNum]));
}
}
我嘗試過使用字符串以及聲音對象,所以我知道問題不在於處理聲道。
供參考,這是我的XML結構:
<playlist>
<title>myplaylist</title>
<track>
<artist>The National</artist>
<title>Secret Meeting</title>
<location>http://localhost:8888/aim/Discography/uploads/4233019.mp3</location>
<album>Alligator</album>
<image>http://localhost:8888/aim/Discography/uploads/pics/alligator.jpg</image>
</track>
</playlist>
什麼是你的XML結構,如果`event.result.playlist.track`商店列表不同曲目的路徑? – www0z0k 2010-12-08 22:53:33
另外,length()不是數組的一種方法,它是一個屬性。你有if(_currentTrackNum!= locationarray.length()),這是不正確的。它是array.length ...屬性...和xmllist.length()...方法... – momo 2010-12-09 00:17:37