0

如果我单击第一个菜单上的项目,是否可以在选择 optionalMenu 项目时显示另一个菜单,应用程序停止运行。

function rightMenuF() {

 var item1 = {
    title : lang["lng_logout"],
    //icon : "Icon.png", // Android 3.0 only
    //itemType : SMF.UI.MenuItemType.cancel, //  iOS Optional Menu only
    onSelected : function (e) {
        openNewMenu();
    }
};
var items = [item1];
Menus.RightOptionalMenu = new SMF.UI.Menu({
    menuStyle : SMF.UI.MenuStyle.optionalMenu, 
        title : lang["lng_settings"],
        //icon : "Icon.png",
        items : items
    });
Menus.RightOptionalMenu.show();
}

function openNewMenu() {

 var item1 = {
    title : lang["lng_logout"],
    //icon : "Icon.png", // Android 3.0 only
    //itemType : SMF.UI.MenuItemType.cancel, //  iOS Optional Menu only
    onSelected : function (e) {
        alert("a");
    }
};
var items = [item1];
Menus.NewOptionalMenu = new SMF.UI.Menu({
    menuStyle : SMF.UI.MenuStyle.optionalMenu, 
        title : lang["lng_settings"], 
        //icon : "Icon.png", 
        items : items
    });
Menus.NewOptionalMenu .show();
}

由 actionBar 项触发的 rightMenuF。

4

1 回答 1

0

这是可能的,但您的代码行中存在一些 JavaScript 问题。

首先,您可以在项目中使用 Menu.JS 作为指南,在http://www.smartface.io/developer/guides/controls/menu-object/也有一篇关于菜单对象的文章 。

现在,创建一个新项目。

打开 Global.JS 文件并取消注释下面的代码行;

 load("Menu.js");

现在,打开 Menu.JS 文件并更改如下代码;

var item1 = {
    title : "My Item 1",
    icon : "icon.png", // Andrid 3.0- only
    itemType : SMF.UI.MenuItemType.destructive, //  iOS Optional Menu Only
    onSelected : function (e) {
        Menus.newMenu2.show();

        alert("First item is selected");
    }
};

var item2 = {
    title : "My Item 2",
    itemType : SMF.UI.MenuItemType.destructive, //  iOS Optional Menu Only
    onSelected : function (e) {
        alert("Second item is selected");
    }
};

var items = [item1, item2];

Menus.newMenu = new SMF.UI.Menu({
        menuStyle : SMF.UI.MenuStyle.contextualMenu,
        title : "Menu Title", // iOS Optional Menu Only
        icon : "menu_icon.png", // Android Context Menu Only
        items : items
    });

Menus.newMenu2 = new SMF.UI.Menu({
        menuStyle : SMF.UI.MenuStyle.optionalMenu,
        title : "Menu Title", // iOS Optional Menu Only
        icon : "menu_icon.png", // Android Context Menu Only
        items : items
    });

//    Use following commands to show menus
/*
Menus.newMenu.show();
Menus.newMenu2.show();
*/

现在例如创建一个按钮并在其 onPressed 事件上编写以下代码;

Menus.newMenu.show();

运行项目时,如果按下按钮,它将显示第一个菜单。如果您触摸第一个项目,它将显示第二个菜单。

于 2015-01-13T15:41:04.540 回答