Передача флеш-переменных в asp.net - PullRequest
0 голосов
/ 06 августа 2009

Я мало что знаю о Flash, но мы работаем над сайтом, у которого есть флэш-форма, и когда пользователи выбирают опцию, например, выбирают значение из выпадающего списка, нам нужно передать значение в asp .net серверный код. Какой самый простой способ сделать это?

Ответы [ 4 ]

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

Предполагается, что вы используете Action Script 2.

Прочтите важные примечания внизу каждого кода, относящиеся к отправке и извлечению данных из флэш-памяти на страницу .net. Объяснение кода находится в комментарии внутри кода.

Flash Part (Action Script 2)

//function to send collected form data to asp.net page
//use other control/button to call this function
//important: in order for the 'onLoad' event to work correctly, this function has to be 'Void'
function sendForm():Void
{
    //create LoadVars object
    var lv_in:LoadVars = new LoadVars();
    var lv_out:LoadVars = new LoadVars();

    //set onLoad event
    lv_in.onLoad = function(success:Boolean)
    {
        //if success, meaning data has received from .net page, run this code
        if (success)
        {
        //lv_in.status is use to get the posted data from .Net page
            statusMsg.text = "Thank you for filling up the form!" + lv_in.status;
        }
        //if fail, run this code
        else
        {
            statusMsg.text = "The form you are trying to fill up has an error!";
        }
    }

    //this is the collected data from the form
    lv_out.userName = txtUserName.text;
    lv_out.userAddress = txtUserAddress.text;
    lv_out.userBirthday = txtUserBirthday.text;

    //begin invoke .net page
    lv_out.sendAndLoad("ProcessDataForm.aspx", lv_in, "POST");
}

Важное примечание: Функция, содержащая событие onLoad , в данном случае sendForm , должна быть Void , то есть не возвращать значение. Если эта функция возвращает значение, то происходит то, что функция будет выполняться полностью без ожидания возвращаемых данных со страницы .net, поэтому событие onLoad не будет установлено должным образом.

.Net Part

public void ProcessData
{
    //process the data here

    Response.Write("status=processed&");
}

Важное примечание: Чтобы отправить данные / сообщение обратно на флэш-память, вы можете использовать Response.Write . Однако, если вы хотите, чтобы Action Script анализировал опубликованное сообщение / данные со страницы .Net, имейте в виду, что вы должны включить символ & в конце сообщения. При разборе данных / сообщений Action Script останавливается на символе & , поэтому оставьте оставшуюся часть сообщения в покое и получите сообщение только в переменной sent .

0 голосов
/ 06 августа 2009

Вы можете изучить следующие варианты:

1) Связь между SWF-файлом и страницей с содержимым через JavaScript

2) Связь через веб-сервисы asp.net с SWF-файла непосредственно на веб-сервис.

3) Не уверен, но, возможно, мог бы сделать POST для страницы aspx обработки?

НТН

0 голосов
/ 08 августа 2009

Я думаю, что хорошим вариантом является использование класса XML, поэтому подумайте:

var xmlRequest = new XML();
xmlRequest.onLoad = parseXMLResponse;
xmlRequest.load("http://yourpathtoyourserver/file.aspx?listselectedvalue=something");

function parseXMLRequest(loaded)
{
  trace("hi");
}

Вы также можете сделать так, чтобы страница возвращала вам данные таким образом, что это не просто односторонняя связь.

0 голосов
/ 06 августа 2009

Flash может вызывать службу на стороне сервера. Поэтому используйте GET или POST для передачи данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...