AS3 SharedObject IF isset或equals

时间:2014-07-23 18:43:37

标签: actionscript-3 flash cookies actionscript shared-objects

对于SharedObjects来说非常新,但基本上我想做的就是让用户回答一次问题而不允许他们再次回答,怎么可能。这就是我在下面的内容?

/*if(_question.data.seenQuestion == "true") {
    cookie_txt.text = "COOKIE FOUND";
} else {
    cookie_txt.text = "NO COOKIES";
}*/


var _question:SharedObject;
_question.data.seenQuestion = "true";
_question.flush();
_question.close();

2 个答案:

答案 0 :(得分:4)

你非常接近。看起来你并没有真正创建SharedObject,为此你会使用方法getLocal

var _question:SharedObject = SharedObject.getLocal("questionData");

此外,由于SharedObject支持原始类型(StringintNumberObjectBoolean等),因此您应该存储Boolean而不是String

if(_question.data.seenQuestion)
{
    cookie_txt.text = "COOKIE FOUND";
}
else
{
    cookie_txt.text = "NO COOKIES";
}

_question.data.seenQuestion = true;
_question.flush();

最后,如果您使用的是本地共享对象(更常见),则无需致电close()

答案 1 :(得分:0)

您需要创建SharedOBject,否则您的代码将抛出错误:

var _question:SharedObject = SharedOBject.getLocal("myapp");

不需要刷新或关闭只是分配/更改一些数据,就是这样。

_question.data.seenQuestion = "true";

然而,SharedObject不是持久数据的好解决方案。用户可以删除/重置它等...