Просмотр полной версии : Работа с cookies
JokerDen
02.08.2010, 13:07
Есть ли в AS 2.0 возможность считывания и записи cookies? Local SharedObject не подходит, так как к изменяемой в кэше переменной должна обращаться и php-страница. Что-нибудь вроде этого:
http://garbage-collector.ru/2007/10/using_cookies_in_as3.html
Через ExternalInterface вы можете вызывать js и работать с куками.
JokerDen
02.08.2010, 13:16
А можно поподробнее? Я просто профан в AS-программировании, знаю только азы. И что за ExternalInterface.
JokerDen
02.08.2010, 14:31
Подскажите тогда как из флэша обращаться к js. Ну или ссылку дайте.
как из флэша обращаться к js.
JokerDen, открываете хелп и смотрите пример по методу ExternalInterface.call
Если обратно, из JS во флеш - то ExternalInterface.addCallback
JokerDen
02.08.2010, 14:49
Не могу найти в хелпе для 2.0 есть только 3.0
Не могу найти в хелпе для 2.0 есть только 3.0
Должен быть. Область поиска может неверно задаете?
Либо вот (http://help.adobe.com/ru_RU/AS2LCR/Flash_10.0/help.html?content=00001044.html)
JokerDen
02.08.2010, 17:40
Блин, я затупок, ничего у меня не получается. Пробовал так:
function flashtojs(tmp) {
expires = new Date();
expires.setTime(expires.getTime() + (1000 * 86400 * 365));
set_cookie('author',tmp, expires);
}
_root.button.onPress = function () {
getURL ('javascript:flashtojs("jopka11");');
}
Пробовал и через ExternalInterface. Не получается. Не могли бы вы показать мне хороший пример работы с куками?
Тут у вас функция flashtojs - это же функция Action Script. Вам же нужно наверное вызывать JS-функцию?
JokerDen
02.08.2010, 17:50
Блин, я запутался. Покажите пожалуйста толковый пример, и объясните где что надо задавать.
Попробуйте так:
import flash.external.ExternalInterface;
var tmp:String = 'jopka11';
var expires:Date = new Date();
expires.setTime(expires.getTime() + (1000 * 86400 * 365));
var jsfunc:String = 'function flashtojs() { expires = new Date(); expires.setTime(expires.getTime() + (1000 * 86400 * 365)); set_cookie("author", ' + tmp + ', ' + String(expires) + ');}'
_root.button.onPress = function ()
{
ExternalInterface.call(jsfunc);
};
Я не проверял и с куками не работал с помощью JS, так что если что, поправьте.
Но идея должна быть понятна.
JokerDen
02.08.2010, 17:57
Спасибо большое, будем пробовать.
Для начала добейтесь вообще благополучного вызова JS:
import flash.external.ExternalInterface;
var jsfunc:String = 'function jsalert() { alert("test"); }'
_root.button.onPress = function ()
{
ExternalInterface.call(jsfunc);
};
потом дальше идите...
JokerDen
04.08.2010, 13:17
Спасибо за советы, попробовал:
JS вообще работает, но переменную в куках так и не пишет
UPD: всё, разобрался, работает с куками. Сейчас другая проблема - передача кириллици, но это, думаю, тема другого форума.
mj_nooker
04.08.2010, 18:08
а можно в студию результат "разобрался"? О=-)
JokerDen
05.08.2010, 14:13
import flash.external.ExternalInterface;
var popa:String = 'function set_cookie(cookie_name, value, expire) { var expire_date = new Date(); expire_date.setDate(expire_date.getDate() + expire); document.cookie = (cookie_name + "=" + escape(value) + ((expire == null) ? "" : ";expires=" + expire_date.toGMTString())); return true; }';
_root.button.onPress = function () {
ExternalInterface.call(popa, 'author',id,259200000);
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.