我想知道如何创建Flash Cookie以跟踪访问者。
有关更多信息,我使用html和appnexus做同样的事情来获取访问者的ID。
答案 0 :(得分:1)
可以将其描述为Flash Cookie。
以下是如何记住用户上次登录时的一个小例子:
var sharedObject:SharedObject = SharedObject.getLocal("testObj");
if (sharedObject.data.id == null)
{
sharedObject.data.id = 20;
sharedObject.flush();
}
trace(sharedObject.data.id); // 20
id对象将被保存,以后可以访问/修改。
有关SharedObject的更多信息,请访问以下链接:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/SharedObject.html
答案 1 :(得分:0)
正如“Creative Magic”所述,您可以使用SharedObjects在Flash中保存数据,类似于使用Cookie在Javascript中保存数据的方式。
鉴于您引用了“html”和“访问者ID”,我将假设您希望在浏览器窗口的上下文中完成此操作。
如果我是正确的,你应该知道你不能直接利用Javascript的SharedObjects。您还应该知道,您可以间接通过Actionscript代码(其答案中包含“Creative Magic”的示例)。
首先,您需要将ActionScript代码封装在方法中,然后将该方法注册为其父应用程序的ExternalInterface的一部分:
function handleObjects(/*param1, param2, ... */):void {/*code*/}
ExternalInterface.addCallback("handleObjects");
其次,您需要编译您的Actionscript应用程序(您的代码),并在HTML中创建一个引用结果.swf文件的元素。
然后,假设前面提到的HTML元素表示为名为flashDOMElement
的DOMElement,您可以使用DOMElement调用您的方法:
flashDOMElement.handleSharedObjects(/*arg1, arg2, ... */);
如果您不想完成所有这些操作,请查看BakedGoods;它是一个Javascript库,它建立了一个统一的接口,可用于在所有本机和一些非本机存储设施中执行常见的存储操作,包括Flash本地共享对象。
有了它,可以使用以下代码完成创建LSO:
bakedGoods.set({
data: [{key: "key", value: "value"}],
storageTypes: ["flash"],
complete: function(byStorageTypeRemovedItemKeysObj, byStorageTypeErrorObj){/*code*/}
});
检索和删除数据同样简单。我知道,请相信我所有这一切;我是它的维护者:))