【问题标题】:Flash AS3 TileList DataProvider getIndexFlash AS3 TileList DataProvider getIndex
【发布时间】:2014-05-22 01:58:53
【问题描述】:

我正在使用网络上提供的 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);
    }

【问题讨论】:

    标签: actionscript-3 cellrenderer tilelist


    【解决方案1】:

    这一行完全错误:

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

    DataProvider 只包含您的项目,类似于 Array。 label[i] 不会返回任何内容,index 不是该对象的属性(labelindex 是您放入 DataProvider 的对象的属性)。

    首先,您的 i 变量实际上是索引。你可以检查i % 2 == 0。 如果您想从 DataProvider 获取任何特定信息(在元素中放置不同的索引),您可以使用 dp.getItemAt(i) -> 这将为您提供每个项目,您可以检查它的属性:dp.getItemAt(i).index % 2 == 0

    【讨论】:

    • 感谢您的回复。我有索引的痕迹,但我的主要目的是更改奇数行背景颜色。现在整个 TileList 都在使用“MyAnotherRenderer”样式。我希望我可以在那个类中使用奇数。以及带有 MyRendered 类的偶数行。
    • 我认为它使用了最后写的 setStyle
    • 它使用MyAnotherRenderer,因为奇数行的检查是错误的。尝试新的检查,并跟踪其中的代码是否已执行。
    • 对不起,我使用了新的检查,但结果还是一样。如果我删除 MyRenderer ,它将使用 MyAnotherRenderer 的样式,反之亦然。我已将新的 If 语句放在上面。
    • 正如我所说 - 追踪一切 - 检查,如果检查通过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多