0

我想在 Windows 8 Metro 风格应用程序中创建一个评分机制,并希望使用 Windows.Storage.ApplicationData 在本地保存该分数,因为我是 Visual Studio 和应用程序构建的新手,所以我遇到了相当困难的时间。

var applicationData = Windows.Storage.ApplicationData.current;

var localSettings = applicationData.localSettings;

// Create a simple setting

localSettings.values["totalPike"] = '0';

// Read data from a simple setting

var totalPike = localSettings.values["totalPike"];

if (!totalPike) {
    // No data
}
else {
    // Access data in value
}

// Delete a simple setting

localSettings.values("totalPike");

这就是 windows 处理来自 msdn 的应用程序数据的方式

$(document).ready(function () {

        var clicks = 99;

        $("#totalScoreTestButton").click(function () {
            totalPike = totalPike + clicks
            $("#totalScoreTest").text(totalPike);
        });
});

这是我当时用来将分数添加到总分数的功能,但是每当我关闭应用程序并重新启动它时,都不会保存分数。有人可以帮助我吗,如果可能的话,请解释一下 Metro 应用程序如何处理本地数据?

4

1 回答 1

7

例如:

(function () {
"use strict";

WinJS.Namespace.define("PersistenceManager", {
    stateFile: "game_state",

    saveState: function () {
        var state = {
            game_state: game_state,
            level: levelIndex,
            score: SCORE,
            playerLives: player_lives,
            compLives: comp_lives
        };

        WinJS.Application.local.writeText(PersistenceManager.stateFile, JSON.stringify(state));
    },

    loadStateAsync: function () {
        var app = WinJS.Application;

        return app.local.exists(PersistenceManager.stateFile).then(function (exists) {
            if (exists)
                return app.local.readText(PersistenceManager.stateFile).then(function (data) {
                    return JSON.parse(data);
                });
            else return null;
        });
    },

});
})();
于 2012-05-01T16:34:34.270 回答