FairyGUI笔记:Button (十四)

up 按钮正常的状态;
down 普通按钮按下时的状态/单选或多选按钮被选中时的状态;
over 当鼠标指针悬浮在按钮上方时的状态;
selectedOver 当单选或多选按钮选中时,鼠标指针悬浮到按钮上方时的状态;
disabled 按钮不可用时的状态;
selectedDisabled 当单选或多选按钮选中时,按钮不可用时的状态。

GButton

设置按钮的标题或者图标,你甚至不需要强制对象为GButton的类型,直接用GObject提供的接口就可以,例如:

GObject obj = gcom.GetChild("n1");
obj.text = "hello";
obj.icon = "ui://包名/图片名";

如果是单选或者多选按钮,下面的方法设置是否选中:

GButton button = gcom.GetChild("n1").asButton;
button.selected = true;

通常对于单选/多选按钮,用户点击后就能切换状态。如果你不需要这样,希望只能通过API改变状态,那么可以:

//关闭后你只能通过改变selected属性修改按钮状态,用户点击不会改变状态。
button.changeStateOnClick = false;

通过代码设置按钮与控制器的联动的方式是:

button.pageOption.controller = aController;
button.pageOption.index = 1; //通过索引设置
button.pageOption.name = "page_name"; //或通过页面名称设置

按钮全局声音的设置为:

//Unity版本要求一个AudioClip对象,如果是使用库里面的资源,那么可以使用:
UIConfig.buttonSound = (AudioClip)UIPackage.GetItemAssetByURL("ui://包名/声音名");
//其他版本要求一个资源url,即:
UIConfig.buttonSound = "ui://包名/声音名";
//全局音量    
UIConfig.buttonSoundVolumeScale = 1f;

这个设置只能在创建任何UI前设置。如果要控制全局声音的开关或音量,可以这样:

//开关声音(Laya和Egret自己有提供声音开关,不需要用这个,请查阅他们的文档)
GRoot.inst.EnabledSound();
GRoot.inst.DisableSound();
//调整全局声音音量,这个包括按钮声音和动效播放的声音
GRoot.inst.soundVolume = 0.5f;

监听普通按钮点击的方式为:(注意,点击事件不只是按钮有,任何支持触摸的元件都有,例如普通组件、装载器、图形等,他们的点击事件注册方式和按钮是相同的。)

//Unity/Cry
button.onClick.Add(onClick);
//AS3
button.addClickListener(onClick);
//Egret
button.addClickListener(this.onClick, this);
//Laya
button.onClick(this, this.onClick);
//Cocos2dx
button->addClickListener(CC_CALLBACK_1(AClass::onClick, this));

按钮可以模拟触发点击:

//模拟触发点击,只会有一个触发的表现,以及改变按钮状态,不会触发侦听按钮的点击事件。
button.FireClick(true);
//如果同时要触发点击事件,需要额外调用:(仅Unity/Cry示例,其他平台自己研究)
button.onClick.Call();

单选和多选按钮状态改变时有通知事件:

//Unity/Cry
button.onChanged.Add(onChanged);
//AS3
button.addEventListener(StateChangeEvent.CHANGED, onChanged);
//Egret
button.addEventListener(StateChangeEvent.CHANGED, this.onChanged, this);
//Laya
button.on(fairygui.Events.STATE_CHANGED, this, this.onChanged);
//Cocos2dx
button->addEventListener(UIEventType::Changed, CC_CALLBACK_1(AClass::onChanged, this));

猜你喜欢

转载自blog.csdn.net/baidu_29474379/article/details/83828001