我想我必须在这里错过一步;我根据变量(_currentTrackNum)从xml创建的数组中提取不同的数据..如果我为它设置了不同的初始值,数据会发生变化;但是如果我在程序初始化后更改变量,即使我使用更改的变量重新运行调用,也没有任何数据发生变化。
<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>
答案 0 :(得分:1)
如果您正在使用FlashBuilder,请在播放XML结果的播放列表数据之后设置断点,然后查看播放列表数据的内容。为此,只需在调试透视图中单击变量选项卡即可。
第一个猜测是结果未正确解析,并且由于某种原因,您的Array可能只包含一个元素或已填充相同的元素。
如果正确填充了播放列表数据,请稍后在该过程中设置另一个断点,您应该找到所有断点...