我正在使用网络上提供的Flash代码。我将其修改为区分奇数行背景和偶数行的颜色。但我无法访问data.index。如何访问索引?
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 :(得分:0)
这一行是完全错误的:
if (dp.label[i].index%2==0){
DataProvider只包含您的项目,类似于Array。 label[i]
不会返回任何内容,index
不是该对象的属性(label
和index
是您放入DataProvider的对象的属性。)< / p>
首先,您的i
变量实际上是索引。您可以查看是否i % 2 == 0
。
如果您想要DataProvider中的任何特定信息(在元素中添加不同的索引),可以使用dp.getItemAt(i)
- &gt;这将为您提供每个项目,您可以检查它的属性:dp.getItemAt(i).index % 2 == 0
。