문제는 i == 5
루프를 시도하기 전에 (따라서 다음 버튼을 두 번 눌러야 할 때까지 기다리는 것 입니다. 인덱스가 0 인 요소 목록을 다루기 때문에 실제로 마지막 요소에있을 i == 4
것입니다. 요소 번호는 0, 1, 2, 3, 4)입니다.
모든 당신의 변화 인 경우 i == 5
에 i == 4
의도 한대로 내가 위에 내 댓글에 언급 한 바와 같이, 이것은 당신이하지 하드 코딩이 수를해야한다, 그러나 작동합니다. 다음과 같이 XML에서 가져와야합니다.
function moveNext(event:MouseEvent)
{
if (i == myXML.film.length()-1)
{
i = 0;
}
else
i = i + 1;
txtTitle.text = myXML.film.title[i];
txtReviewScore.text = myXML.film.rating[i];
}
이렇게하면 XML
변경 내용이 갑자기 5 개 이하의 레코드가있는 경우 코드가 계속 작동합니다.
OP의 의견에 응답하도록 편집 :
i
인덱스로 사용하기 직전에 감소 하고 있으므로으로 재설정하고 싶지 않을 것 length-1
입니다. 대신 다음과 같이 설정하면됩니다 length
.
function movePrevious(event:MouseEvent)
{
if (i == 0)
{
i = myXML.film.length();
}
else
i = i - 1;
txtTitle.text = myXML.film.title[i];
txtReviewScore.text = myXML.film.rating[i];
}
출처
https://stackoverflow.com/questions/22050126