具有循环和不同高度属性的 addChild
addChild with looping and different height properties
我正在使用 Flash as3.0 构建应用程序。
这是我的代码。
function onCompleteLoadTimeline(event:Event){
var result:Object = JSON.parse(event.target.data);
var yPos = 0;
for (var i:int=0;i<=2;i++){
tpostArr[i] = new t_post();
var batas_mc:batas = new batas();
tpostArr[i].foto.x = 52.50;
tpostArr[i].foto.y = 52.50;
tpostArr[i].nama.x = 120;
tpostArr[i].nama.y = 20;
tpostArr[i].postingan.x = 120;
tpostArr[i].postingan.y = 55.15;
tpostArr[i].postingan.wordWrap = true;
tpostArr[i].postingan.autoSize = TextFieldAutoSize.LEFT;
tpostArr[i].tombol_suka.x = 440;
tpostArr[i].tombol_suka.y = 73;
tpostArr[i].nama.text = result[i].timeline_name;
tpostArr[i].postingan.text = result[i].timeline_post;
batas_mc.x = 0;
batas_mc.y = tpostArr[i].postingan.y + tpostArr[i].postingan.height + 20;
tpostArr[i].addChild(batas_mc);
timeline_mc.addChild(tpostArr[i]);
tpostArr[i].y = i* tpostArr[i].height;
}
}
关于 tpost 的 y 位置。 tpost 的高度并不总是相同的。 tpost 可以更高,具体取决于 tpostArr[i].postingan.height,我希望 tpost 不重叠。 enterFrame可以解决吗?你能给我看代码吗?
我会使用一个变量来保存不重叠的最大值。换句话说,如果您在 x = 20 处添加显示对象的实例,并且显示对象的宽度为 10 像素,则变量将设置为 30,如下所示:
yourVar = yourMovieClip.x + yourMovieClip.width
然后,当您添加下一个时,将其下限设置为yourVar
。
这个概念应该可行,并且很容易适用于您的情况。
我认为在你的情况下,你正试图以一定的垂直间距实例化你的对象,对吧?如果是这样,只需
yourVar = tpostArr[i].y + tpostArray[i].height;
并将下一个实例的 y 值设置为
yourVar + 5; // or whatever number of pixels you want.
这样,每个实例的高度可以是任意数量,并且您存储了一个变量,它将成为 post 到 post 的下一个 y 值。
希望我已经充分理解您的问题。让我知道这个是否奏效。
我正在使用 Flash as3.0 构建应用程序。 这是我的代码。
function onCompleteLoadTimeline(event:Event){
var result:Object = JSON.parse(event.target.data);
var yPos = 0;
for (var i:int=0;i<=2;i++){
tpostArr[i] = new t_post();
var batas_mc:batas = new batas();
tpostArr[i].foto.x = 52.50;
tpostArr[i].foto.y = 52.50;
tpostArr[i].nama.x = 120;
tpostArr[i].nama.y = 20;
tpostArr[i].postingan.x = 120;
tpostArr[i].postingan.y = 55.15;
tpostArr[i].postingan.wordWrap = true;
tpostArr[i].postingan.autoSize = TextFieldAutoSize.LEFT;
tpostArr[i].tombol_suka.x = 440;
tpostArr[i].tombol_suka.y = 73;
tpostArr[i].nama.text = result[i].timeline_name;
tpostArr[i].postingan.text = result[i].timeline_post;
batas_mc.x = 0;
batas_mc.y = tpostArr[i].postingan.y + tpostArr[i].postingan.height + 20;
tpostArr[i].addChild(batas_mc);
timeline_mc.addChild(tpostArr[i]);
tpostArr[i].y = i* tpostArr[i].height;
}
}
关于 tpost 的 y 位置。 tpost 的高度并不总是相同的。 tpost 可以更高,具体取决于 tpostArr[i].postingan.height,我希望 tpost 不重叠。 enterFrame可以解决吗?你能给我看代码吗?
我会使用一个变量来保存不重叠的最大值。换句话说,如果您在 x = 20 处添加显示对象的实例,并且显示对象的宽度为 10 像素,则变量将设置为 30,如下所示:
yourVar = yourMovieClip.x + yourMovieClip.width
然后,当您添加下一个时,将其下限设置为yourVar
。
这个概念应该可行,并且很容易适用于您的情况。
我认为在你的情况下,你正试图以一定的垂直间距实例化你的对象,对吧?如果是这样,只需
yourVar = tpostArr[i].y + tpostArray[i].height;
并将下一个实例的 y 值设置为
yourVar + 5; // or whatever number of pixels you want.
这样,每个实例的高度可以是任意数量,并且您存储了一个变量,它将成为 post 到 post 的下一个 y 值。
希望我已经充分理解您的问题。让我知道这个是否奏效。