我正在使用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);
}
}
代码中只有最新数据出现在影片剪辑中。 请帮帮我。
答案 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的含义是什么(在你的代码中使用英文!)这就是为什么我创建了自己定位对象的逻辑。如果你的工作适合你,那就使用它。
为简洁起见,我也省略了数组代码。
顺便说一句:您实际上是使用自定义方式构建自定义组件来显示数据,这通常被称为“项呈示器”。如果您不想从头开始构建所有内容,请继续搜索该术语。