Как использовать Cookies во Flash
Декабрь 15th, 2009 автор: Oleg Antipov
Очень часто возникает необходимость сохранять какую-то информацию между сеансами игры. И в этом нам поможет специальные Cookie флеша – shared objects. Вообще конечно это не совсем привычные пользователю куки, т.к. хранятся они не вместе со всеми, а в системных папках флеш-плеера.
Но тем не менее мне привычней считать их просто Куками )
Вот такой класс я использую для записи и чтения Cookies:
package aneg { import flash.net.SharedObject; public class Cookie { private var _name:String; private var _so:SharedObject; public function Cookie(name:String = "tempCookie") { _name = name; _so = SharedObject.getLocal(name, "/" ); } // Получить имя cookie public function getName():String { return _name; } // Удалить все элементы из cookie public function clear():void { _so.clear(); } // добавить новое значение элементу // key - имя элемента value - значение public function put(key:String, value:*):void { key = "key_"+key; if(_so.data.cookie == undefined) { var obj:Object = {}; obj[key] = value; _so.data.cookie = obj; } else { _so.data.cookie[key] = value; } _so.flush(); } // удалить из cookie элемент по его названию public function remove(key:String):void { if (isKeyExist(key)) { delete _so.data.cookie["key_" + key]; _so.flush(); } } // получить значение элемента с именем key public function get(key:String):Object { return isKeyExist(key)?_so.data.cookie["key_"+key]:null; } // проверить существования элемента с именем key public function isKeyExist(key:String):Boolean { key = "key_" + key; return _so.data.cookie != undefined && _so.data.cookie[key] != undefined; } // проверить существует ли Cookie public function isExist():Boolean { return !(getSize()==0); } //Получить размер cookie в байтах public function getSize():uint { return _so.size; } } }
Думаю он довольно понятный, и дополнительных комментариев не требует ![]()
Весь класс Cookie можно скачать здесь: http://www.anegmetex.com/devblog/files/Cookie.as
Категория: Полезные классы

Декабрь 16th, 2009 at 12:13
Комментарий к функции “public function isExist():Boolean”n не верный
Декабрь 16th, 2009 at 13:15
Спасибо, поправил
Нужно было так: “Проверить существует ли Cookie”
Январь 13th, 2010 at 0:12
А как настоящие куки получить? подскажите пожалуйста или адресок, где почитать про это можно.
Январь 13th, 2010 at 0:29
Можно, но нужно ли? )
Вот тут вроде как написано как можно использовать настоящие http-куки во флеше http://scriptactionthree.blogspot.com/2008/09/using-real-http-cookies-in-flash-as3.html
Январь 13th, 2010 at 0:37
Радует что отвечают
спасибо!
тогда другой вопрос.
если я из флеш делаю запрос на php, получает ли php куки со страницы на которой флеш?
Январь 13th, 2010 at 1:00
На сколько я знаю все GET запросы из флеша идут с куками.
Январь 13th, 2010 at 5:49
Спасибо. Все же брать куки прямо со страници, опасное дело
Февраль 21st, 2010 at 20:30
public function get(key:String):Object
{
return isExist(key)?_so.data.cookie["key_"+key]:null;
}
должно быть
public function get(key:String):Object
{
return isKeyExist(key)?_so.data.cookie["key_"+key]:null;
}
и в скипте надо поправить))
Февраль 21st, 2010 at 23:31
Спасибо, поправил. У себя на компе уже давно исправил, а тут осталось )
Апрель 11th, 2010 at 17:57
спасибо! обалденно полезное дело писать куки в flash! Довольно надёжно можно метить компьютер пользователя, ибо лежат глубже и не все про это знают. Жаль не знаю flash и не могу связать с рнр. Вот если бы Вы, Олег скрипт, соответствующий предложили. Многие, полагаю были бы благодарны.
Апрель 12th, 2010 at 13:17
Постараюсь что-нибудь накропать на эту тему