与flash播放器的饼干

时间:2014-06-24 09:46:36

标签: actionscript-3 cookies flash

我想知道如何创建Flash Cookie以跟踪访问者。

有关更多信息,我使用html和appnexus做同样的事情来获取访问者的ID。

2 个答案:

答案 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*/}
});

检索和删除数据同样简单。我知道,请相信我所有这一切;我是它的维护者:))