2014-04-09 3 views
0

웹 사이트에서 제공하는 플래시 코드를 사용하고 있습니다. 그것은 홀수 번째 행의 배경색과 짝수 번째 행의 색상을 구분하여 수정합니다. 그러나 나는 data.index에 접근 할 수 없다. 인덱스에 액세스하려면 어떻게합니까?Flash AS3 TileList DataProvider getIndex

import fl.controls.TileList; 
import fl.core.UIComponent; 
import fl.data.DataProvider; 
import fl.events.ListEvent; 
import flash.display.Sprite; 
import flash.events.Event; 

public class CellRendererExample extends Sprite 
{ 
    public function CellRendererExample() { 
     var index:int; 
     var dp:DataProvider = new DataProvider(); 
     var totalEntries:uint = 42; 
     var i:uint; 
     for(i=0; i<totalEntries; i++) { 
      dp.addItem({ label:"Item "+i ,index:i});    
     } 

     var myTileList = new TileList(); 
     myTileList.dataProvider = dp; 
     myTileList.allowMultipleSelection = true; 
     myTileList.columnWidth = 125; 
     myTileList.rowHeight = 30; 
     myTileList.columnCount = 1; 
     myTileList.rowCount = 6; 
     myTileList.move(10,10); 
     myTileList.direction = "VERTICAL"; 


     for(i=0; i<totalEntries; i++) { 
     if (dp.label[i].index%2==0){ 
     myTileList.setStyle('cellRenderer', MyRenderer); } 
     else{ 
      myTileList.setStyle('cellRenderer', MyAnotherRenderer); 
      } 
     } 


     addChild(myTileList); 
    } 

답변

0

이 줄은 완전히 잘못된 것입니다 :

if (dp.label[i].index%2==0){ 

DataProvider를 그냥 배열과 유사한 항목이 포함되어 있습니다. label[i]는 아무것도 반환하지 않으며, index 해당 개체 (labelindex 당신이 DataProvider에 넣어 객체의 속성입니다)의 속성이 아니다.

먼저 i 변수가 실제로 색인입니다. i % 2 == 0인지 확인할 수 있습니다. 당신은 dataProvider의 특정 정보를 원하는 경우 , 당신은 dp.getItemAt(i)를 사용할 수있다 (당신은 요소에 다른 인덱스를 넣어) ->이 당신에게 각 항목을 줄 것이다, 당신이 그것을 속성을이다 확인할 수 있습니다 dp.getItemAt(i).index % 2 == 0.

+0

답장을 보내 주셔서 감사합니다. 인덱스의 흔적이 있지만 주된 목적은 홀수 번호의 행 배경색을 변경하는 것입니다. 지금 전체 TileList는 "MyAnotherRenderer"스타일을 사용하고 있습니다. 나는 그 클래스와 함께 이상한 것들을 사용할 수 있기를 희망한다. MyRendered 클래스를 사용하여 짝수 행을 표시합니다. – xyonme

+0

나는 그것 때문에 홀수 행에 대한 검사가 잘못했다는 사실, 그것은'MyAnotherRenderer'을 사용하고 – xyonme

+0

작성 마지막으로 setStyle 먹으 렴을 사용하여 생각합니다. 새로운 체크를 시도하고, 그 안에있는 코드가 실행되면 트레이스 아웃하십시오. –