Передача переменной FROM flash в HTML / php - PullRequest
0 голосов
/ 08 марта 2011

Я надеялся, что, может быть, кто-то сможет дать представление о проблеме, с которой мне трудно решить, как ее решить.

У меня довольно простое приложение на флеш-памяти, при подключении пользователи могут быстро ввести имя пользователя, иимя пользователя создается внутри Flash SWF.

Теперь у меня есть задание cron, которое удаляет неактивные имена пользователей каждые десять минут (в моей базе данных mysql, где все эти имена пользователей хранятся и доступны другим пользователям в сети), что нормально,Но он все еще может быть загроможден, если группа людей сразу выйдет из системы, еще есть 10-минутное окно до того, как задание cron очистит их.

У пользователей есть возможность выбрать выход из приложения во флэш-приложении.что хорошо и прекрасно работает.Но, конечно, многие предпочитают не выходить из системы, они просто щелкают по браузеру x.

Я изучил onbeforeunload и junery .unload, но мне все еще нужен способ получить переменную username, которая находится во флэш-памяти, в HTML, а затем используйте сценарий php для запуска запроса на удаление имени пользователя mysql.

Есть ли более простое решение?

Если нет, то можно узнать, как я могу передать переменную имени пользователя в html для хранения.на него после того, как пользователь делает свое имя пользователя, чтобы он мог быть связан с функцией .unload, выполняющей скрипт php?

EDIT ::::: Может быть, есть способ создать уникальную строку чисел с php, тогдапередать эту переменную во флэш-память, чтобы включить ее в строку mysql, так как у меня уже есть эта переменная, так как она была создана на стороне html, только вместе с unload, она удаляет строку, имеющую этот уникальный идентификатор?

Если кому-то понадобится эта идея, то лучше всего подойдет, и если я использую что-то вроде md5 (uniqid (microtime ()). $ _SERVER ['REMOTE_ADDR']. $ _SERVER ['HTTP_USER_AGENT']) для созданияслучайным образом, как я могу сохранить результат в переменной, которую я мог бы поместить в параметр flash vars, а затем снова в jquery unload или javascript onbeforeunload, если это будет лучше.я просто больше знаком с jquery

Ответы [ 2 ]

1 голос
/ 08 марта 2011

Вы могли бы фактически вызвать команду ExternalInterface, чтобы заполнить скрытое поле в вашем HTML, исходящее от вашего SWF-компонента.

if (ExternalInterface.available) 
{
  var js:String = "yourJavaScriptFunction";
  var valToPass:String;
  ExternalInterface.call(js(valToPass));
}

И на вашей HTML-странице вы пишете функцию javascript:

<script language="javascript" type="text/javascript">
function yourJavaScriptFunction(valToPass)
{
  document.getElementById('yourHiddenField').value = valToPass;
}

А из события unload, инициированного вашей страницей, вы можете получить доступ к значению, которое было передано из вашего SWF.

Обратите внимание, что вы можете вызывать функцию javascript из SWF, как только получитеучетные данные вашего пользователя.

Надеюсь, это поможет.

0 голосов
/ 08 марта 2011

Вы хотите использовать комбинацию URLRequest , URLVariables и URLLoader для этого.См. Ниже.

var myData:URLRequest = new URLRequest("some.php");
myData.method = URLRequestMethod.POST;

var variables:URLVariables = new URLVariables();
variables.username = 'CREATED USERNAME';

myData.data = variables;

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, dataOnLoad);
loader.load(myData);

function dataOnLoad(evt:Event){
    trace('Completed');
}

После этого будет вызван файл 'some.php' с вашим именем пользователя, хранящимся в '$ _POST [' username ']'.Затем ваш php-скрипт может произвести впечатление на базу данных, связывающую это имя пользователя с этим сеансом (как бы вы этого не хотели).

...