[]分享:Panel下动态修改子容器宽高并刷新显示!
package
{
import laya.display.Sprite;
import laya.events.Event;
import laya.ui.Button;
import laya.ui.Panel;
import laya.utils.Browser;
import laya.utils.Handler;
public class LayaUISample
{
public function LayaUISample()
{
// 不支持WebGL时自动切换至Canvas
Laya.init(Browser.width, Browser.height);
//ui组件,除了image和clip外,其他皮肤均需要预加载资源,此处添加button和panel垂直滚动条的皮肤使用
Laya.loader.load(['button-4.png','ui/vscroll.png','ui/vscroll$bar.png','ui/vscroll$down.png','ui/vscroll$up.png'],Handler.create(this,start));
}
private function start():void
{
var panel:Panel=new Panel();//添加panel,切忌要先将panel添加到舞台同时设置宽高,然后再去添加子对象
panel.width=500;
panel.height=500;
panel.vScrollBarSkin='ui/vscroll.png';//设置panel的垂直滚动条,方便看出panel的滚动变化
Laya.stage.addChild(panel);
var sp:Sprite=new Sprite();//panel的子容器sp
sp.graphics.drawRect(0,0,500,1000,"#FF0000");
sp.size(500,1000);
panel.addChild(sp);
var btnAdd:Button=new Button();//点击按钮,动态添加sp的子对象,并改变子对象sp的宽高
btnAdd.skin='button-4.png';
Laya.stage.addChild(btnAdd);
btnAdd.x=550;
btnAdd.label='ADD1000';
btnAdd.on(Event.CLICK,this,onClick,[sp,panel]);
}
private function onClick(sp:Sprite,panel:Panel):void
{
trace('Add1000');
for(var i:int=0;i<1000;i++)
{
var button:Button=new Button('button-4.png');
button.label='button:'+i;
sp.addChild(button);
button.y=i*60;
}
sp.graphics.clear();
sp.graphics.drawRect(0,0,500,1000*60,"#FF0000");
sp.size(500,1000*60);//sp高度改变
sp.event('resize');//此处是重点,sp动态改变宽高后,需要派发一个resize事件
}
}
}
没有找到相关结果
已邀请:
要回复问题请先登录
4 个回复
layabox
赞同来自: Cherry006
:)
moketao
赞同来自:
水水水无月~
赞同来自:
ME
赞同来自: