PDA

Просмотр полной версии : Передача данных из JS в AS, редирект


Lalf
20.07.2009, 01:46
Доброго времени суток.
Я хочу сделать флэш ролик, который будет получать строковую переменную (url-адрес) из JavaScript, производить некоторые действия над этой переменной в ActionScript и переадресовывать пользователя на данный адрес.
Я очень много гуглил по поводу передачи данных из JS в AS, нашёл 2 способа:
- SWFObject (http://code.google.com/p/swfobject/) (не удобен, много лишнего кода)
- Мост между JS и AS (ExternalInterface) (http://javascript.ru/files/upload/domstorage/flash/example.html) - этот и выбрал.

Но возникла небольшая проблема, а именно: у меня не происходит редирект (переадресация) или не происходит передача данных из JS в AS.

На JS я пишу следующее:

function sendFromJS(txt) {
var movie = (navigator.appName.indexOf("Microsoft")!=-1 ? window : document)["BridgeMovie"];

movie.sendFromJS(txt);
}


А в AS:
// Flash Storage example

import flash.external.*;

ExternalInterface.addCallback("sendFromJS", null, recieveFromJS);

function recieveFromJS(t) {
// _root.theText.text = t;
getUrl(t, "_self");
// !!! или
var my_lv:LoadVars = new LoadVars();
my_lv.send(t, "_blank", "POST");
}

_root.button.onRelease = function() {
ExternalInterface.call("recieveFromFlash", _root.theText.text);
_root.theText.text = "";
}


"Publish -> разрешить доступ только к сети" делаю.
У меня Adobe Flash CS4.


Я вообще не знаю AS, поэтому могу ошибаться в типах данных.


Прошу Вашей помощи, Флэш-гуру.

Lalf
23.07.2009, 02:42
Помогите, пожалуйста, я в тупике :(

dimarik
25.07.2009, 17:27
По виду все правильно.

Что выдает
trace(ExternalInterface.addCallback("sendFromJS", null, recieveFromJS);

Lalf
26.07.2009, 01:57
dimarik, я через SWFObject сделал. Ошибка у меня была в неправильном написании функции и лишнем коде. Кстати, у вас скобочка пропущена ;)