PDA

Просмотр полной версии : Передать из одной флешки в другую значение переменной, а лучше объект


orcpochta
15.11.2008, 02:12
На сайте есть флешка, в какой-то момент исполнения какой-то объект в ней принимает определенное состояние. При нажатии определенной кнопки открывается другая страница, в которой загружается другая флешка, в которую надо передать состояние объекта в флешке с предыдущей страницы, с которой была инициализирована загрузка этой новой флешки.
Как это можно сделать?
Вроде как можно через шаредОбжектс, но не хотелось бы с ними связываться, т.к. нет гарантии, что у пользователя не поставлен в настройках ноль на локалСторэйдж.
Т.е нужна какая-то безусловная передача, чтобы не было всяких "если".

Avtorpc
15.11.2008, 02:22
Рекомендую сделать это через .xml файл. Также можно сделать через GetURL, если количество данных небольшое.

orcpochta
15.11.2008, 02:24
Рекомендую сделать это через .xml файл. Также можно сделать через GetURL, если количество данных небольшое.

Можно подробней оба варианта? Я начинающий флешер и некоторых вещей просто не знаю.

Avtorpc
16.11.2008, 20:48
Скрипт файла передатчика.
var name1:String="";
_root.bt.onPress=function(){
name1=_root.tet.text; //tet имя поля ввода тескта
_root.getURL("http://www.avtorpc.narod.ru/testing/priem.html","_blank","GET");
}
Файл лежит здесь http://avtorpc.narod.ru/testing/peredacha.html
У файла приемника скрипта AS нет(в частном случае для примера он просто не нужен).
Нужен след. текст на JavaScript, его можно взять здесь
http://www.avtorpc.narod.ru/testing/priem.html
На все возникшие вопросы отвечу в этой теме.

NoCD
17.11.2008, 06:24
или еще проще, воспользоваться LocalConnect
Создать в 1.swf приёмник-передатчик в 2.swf приёмник-передатчик.
В таком случае две флэшки свободно могут принимать и передавать информацию друг другу.

Avtorpc
17.11.2008, 17:55
или еще проще, воспользоваться LocalConnect
Создать в 1.swf приёмник-передатчик в 2.swf приёмник-передатчик.
В таком случае две флэшки свободно могут принимать и передавать информацию друг другу.
Я протестил такой вариант:rtfm:
Получил очень интересный результат.
1. Открываем флешу-передатчик. По клику она должна открывать новое окно браузера куда грузится html код с флешкой приемником.
2. Так как все срабатывает не мгновенно то устанвливаю в флеше-при емнике код onLoad, откуда отправляю флешке-передатчику сигнал о загрузке. В ответ на этот сигнал флешка передатчик должна отправить основной код флешке приемнику. Тестирую на локалке - все работает.
3. Тестирую в сети. Реакция нулевая. Методом научного тыка получен такой вывод - если окно с флешкой-передатчиком служит родительским окном флешке-приемнику LocalConnection не работает. Если оба окна открыти из третьего окна(то есть "братья"), тогда LocalConnection устанавливается.
вот код передатчика
var name1:String="Myname";
var famyli:String="Myfamyli";
rev=new LocalConnection();
rev1=new LocalConnection();
rev.myMetod=function(b){
_root.attachMovie("Symbol","ee",3);
_root.tet.text=b;
_root.rev1.send("aConnection1","mTd",name1+" "+famyli);
}
_root.rev.connect("aConnection");
_root.bt.onPress=function(){
_root.getURL("http://www.avtorpc.narod.ru/testing/priem.html","_blank");
}


Код флешки-получателя
_root.onLoad=function(){
sender=new LocalConnection();
sender1=new LocalConnection();
_root.sender.send("aConnection","myMetod","two");
sender1.mTd=function(a){
_root.trt.text=a;
}
_root.sender1.connect("aConnection1");
}

alexcon314
17.11.2008, 23:51
Странно, у меня ваш код работает как надо. И локально и в сети.
http://mdm-zinc.narod.ru/lc/lc1.html
http://mdm-zinc.narod.ru/lc/lc2.html