有时候我们需要menuBar中的主菜单对鼠标单击事件响应,方法如下:
拖一MenuBar组件至场景中,并命名为:menuBar,新建一层在第一帧加入以下代码并测试:
var menu0 = menuBar.addMenu("首页");
var menu1 = menuBar.addMenu("我的相册");
var menu2 = menuBar.addMenu("我的日记");
menu1.addMenuItem({label:"我的童年", instanceName:"myChildHood"});
menu1.addMenuItem({label:"我的小学", instanceName:"myElementarySchool"});
menu1.addMenuItem({label:"我的中学", type:"radio", selected:false, enabled:true, instanceName:"myHighSchool ", groupName:"myRadioGroup"});
var listen = new Object();
listen.change = function(evt) {
var menu = evt.menu;
var item = evt.menuItem;
trace(item);
};
menu1.addEventListener("change", listen);
trace(menuBar.__menuBarItems[0]);
for (var i = 0; i<=menuBar.__menuBarItems.length; i++) {
menuBar.__menuBarItems[i].onPress = function() {
trace(this.__initText);
trace(this.owner);
trace(this.menuBarIndex);
trace(this.tfList);
};
}
/*menuBar.mbItem200.onPress = function() {
trace("ok");
};
*/
代码中的注释掉的部分其实显示出了menuBar中主菜单项的命名规则,mbItem200、mbItem201、mbItem202........
要注意代码的顺序如果把onPress事件放在最前面,则有时候会无法响应。。。。
拖一MenuBar组件至场景中,并命名为:menuBar,新建一层在第一帧加入以下代码并测试:
var menu0 = menuBar.addMenu("首页");
var menu1 = menuBar.addMenu("我的相册");
var menu2 = menuBar.addMenu("我的日记");
menu1.addMenuItem({label:"我的童年", instanceName:"myChildHood"});
menu1.addMenuItem({label:"我的小学", instanceName:"myElementarySchool"});
menu1.addMenuItem({label:"我的中学", type:"radio", selected:false, enabled:true, instanceName:"myHighSchool ", groupName:"myRadioGroup"});
var listen = new Object();
listen.change = function(evt) {
var menu = evt.menu;
var item = evt.menuItem;
trace(item);
};
menu1.addEventListener("change", listen);
trace(menuBar.__menuBarItems[0]);
for (var i = 0; i<=menuBar.__menuBarItems.length; i++) {
menuBar.__menuBarItems[i].onPress = function() {
trace(this.__initText);
trace(this.owner);
trace(this.menuBarIndex);
trace(this.tfList);
};
}
/*menuBar.mbItem200.onPress = function() {
trace("ok");
};
*/
代码中的注释掉的部分其实显示出了menuBar中主菜单项的命名规则,mbItem200、mbItem201、mbItem202........
要注意代码的顺序如果把onPress事件放在最前面,则有时候会无法响应。。。。
回复Comments
作者:
{commentrecontent}