Ответ 1
Я никогда не пробовал этого, но эта библиотека могла бы просто сделать трюк.
Я создаю виджет Flex для частного сайта vBulletin, а виджет Flex должен получить доступ к XML файлу на сервере vBulletin, чтобы отображать данные.
В целях безопасности URL-адрес XML должен иметь значение в файле cookie bbsessionhash, передаваемом в запросе URL из Flex. Виджет Flex будет встроен в частную область, в которую пользователь вошел в систему, поэтому запрос Flex будет поступать с того же веб-сайта, из которого сделан cookie.
Есть ли способ получить доступ к файлам cookie непосредственно внутри Flex? Я бы предпочел не использовать ExternalInterface для захвата данных cookie с JavaScript, так как это может стать немного грязным (шаблоны разрабатываются совершенно другой командой разработчиков).
Я никогда не пробовал этого, но эта библиотека могла бы просто сделать трюк.
В соответствии с флеш файлами или флеш-куки, разработчик может использовать общий объект, который является одним из видов файлов cookie, используемых для приложения flex.
Пример фрагмента кода выглядит следующим образом
import flash.net.SharedObject;
// get/create the shared object with a unique name.
// If the shared object exists this grab it, if not
// then it will create a new one
var so: SharedObject = SharedObject.getLocal("UniqueName");
// the shared object has a propery named data, it's
// an object on which you can create, read, or modify
// properties (you can't set the data property itself!)
// you can check to see if it already has something set
// using hasOwnProperty, so we'll check if it has a var
// use it if it does, or set it to a default if it doesn't
if (so.data.hasOwnProperty("theProp"))
{
trace("already has data! It reads: " + so.data.theProp);
}
else
{
so.data.theProp = "default value";
so.flush(); // flush saves the data
trace("It didn't have a value, so we set it.");
}
Доступ к Flex SharedObject не совпадает с доступом к куки файлам браузера, для доступа к куки файлам браузера вы можете использовать класс ExternalInterface, пожалуйста, проверьте следующую ссылку, чтобы увидеть образцы:
http://livedocs.adobe.com/flex/3/html/help.html?content=passingarguments_4.html
Ссылка на использование и управление файлами cookie с помощью JavaScript можно найти здесь:
http://www.quirksmode.org/js/cookies.html
Я бы использовал следующий код Flex:
var myCookie:String = ExternalInterface.call("getCookie('cookieName')");
И в HTML я бы добавил следующий Javascript:
function getCookie(c_name) {
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++) {
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^\s+|\s+$/g,"");
if (x==c_name) return unescape(y);
}
}
Если вам нужна дополнительная помощь, вы также можете проверить документацию Flex.