将json数据发送到array(movieclip)as3.0

时间:2016-05-30 06:52:46

标签: json actionscript-3

我正在使用as3在flash cs6中构建一个air app。我需要发送一个json到movieclip。我想创建一个"时间线"在我的申请上。 这是我使用的代码。

function onCompleteLoadTimeline(event:Event){
    var result:Object = JSON.parse(event.target.data);
    var yPos = 0;
    for (var h:int=0; h<=1; h++){
        tpost = new t_post();
        tpost.x = 0;
        tpost.y = 0;
        timeline_mc.addChild(tpost);
        timeline_container.push(tpost);
        timeline_container[h].y = yPos;
        yPos += timeline_container[h].batas.y;

    }
    for (var i:Object in result){
        for (var j:int=0; j<=1; j++){
            timeline_container[j].nama.text = result[i].timeline_name;
            timeline_container[j].postingan.text = result[i].timeline_post;
        }
        trace ("nama : "+result[i].timeline_name);
        trace ("status : "+result[i].timeline_post);
        trace ("waktu : "+result[i].date);
        trace ("suka : "+result[i].likers);
    }
}

代码中只有最新数据出现在影片剪辑中。 请帮帮我。

1 个答案:

答案 0 :(得分:1)

你有一些for循环达到1.我不知道它们的用途。

您需要的唯一循环是迭代结果的循环。

var result:Object = JSON.parse(event.target.data);
var yPos = 0;

for (var i:Object in result){
    var tpost:t_post = new t_post();
    tpost.y = yPos;
    timeline_mc.addChild(tpost);
    tpost.nama.text = result[i].timeline_name;      
    tpost.postingan.text = result[i].timeline_post;
    yPos += tpost.height + 10;
}

我不知道batas的含义是什么(在你的代码中使用英文!)这就是为什么我创建了自己定位对象的逻辑。如果你的工作适合你,那就使用它。

为简洁起见,我也省略了数组代码。

顺便说一句:您实际上是使用自定义方式构建自定义组件来显示数据,这通常被称为“项呈示器”。如果您不想从头开始构建所有内容,请继续搜索该术语。