2010-12-08 1 views
0

나는 여기서 한 걸음을 놓치고 있어야한다고 생각한다; 다른 데이터를 변수 (_currentTrackNum)에 따라 XML에서 만든 배열에서 끌어온 있습니다. 그리고 그것에 대해 다른 초기 값을 설정하면 데이터가 변경됩니다; 그러나 프로그램이 초기화 된 후에 변수를 변경하면 변경된 변수로 호출을 다시 실행해도 데이터가 변경되지 않습니다.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])); 
    } 
    } 

사운드 객체뿐만 아니라 문자열도 시도 했으므로 사운드 채널을 처리 할 때 문제가 있다는 것을 알고 있습니다.

<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

당신의 XML 구조 것입니다 ... 그 과정에서 나중에 또 다른 중단 점을 설정하고이 곳의 모든 휴식 찾아야한다 event.result.playlist.track' 저장 목록 '의 경우 다른 트랙에 대한 경로? – www0z0k

+1

또한 length()는 배열의 메서드가 아니며 속성입니다. where (_currentTrackNum! = locationarray.length())가있는 경우 올바르지 않습니다. 배열입니다. 길이 ... 속성 ... xmllist.length() ... 메서드 ... – momo

+0

BIg Momo .. 내가()를 가져서는 안된다는 뜻입니까? – Damon

답변

1

당신이 FlashBuilder를 사용하는 경우는, 다음, 바로 XML 결과로 채워으로 playlistdata 후 중단 점을 설정 playlistdata의 내용을 보면 :

은 참조를 위해, 여기 내 XML 구조입니다. 이렇게하려면 디버그 퍼스펙티브에서 변수 탭을 클릭하기 만하면됩니다.

첫 번째 추측은 결과가 올바르게 구문 분석되지 않으며 어떤 이유로 인해 배열에 하나의 요소 만 포함되거나 동일한 요소로 채워질 수 있습니다. playlistdata가 제대로 채워 경우

,

+0

나는 조언을 확실히 주셔서 감사합니다! 불행히도 현재 디버그에서 FB를 실행할 수 없습니다 : /. 그것은 flashplayer의 디버그 버전을 실행하고 있는지 확인하는 것입니다. 나는 운 좋게 몇 번 설치했습니다. – Damon

+0

디버거가 작동 중입니다. 플래시 디버그 플레이어를 별도로 열어야 했으므로 디버그가 실제로 아무 것도 시작하지 않도록 변경하십시오. 디버그를 누른 다음 시간이 초과되기 전에 생성하는 swf를로드하십시오. – Damon

관련 문제