我对Flash知之甚少,但我们正在开发一个具有flash格式的网站,当用户选择一个选项时,比如从下拉列表中选择一个值,我们需要将值传递给asp .net服务器端代码。最简单的方法是什么?
答案 0 :(得分:0)
Flash可以调用服务器端服务。因此,使用GET或POST传递数据
答案 1 :(得分:0)
您可以探索以下选项:
1)通过JavaScript
在SWF和包含页面之间进行通信2)通过asp.net webservices从SWF直接与Web服务进行通信。
3)不确定但是可能会对处理的aspx页面进行POST吗?
HTH
答案 2 :(得分:0)
我认为一个好的选择是使用XML类,所以请考虑这个:
var xmlRequest = new XML();
xmlRequest.onLoad = parseXMLResponse;
xmlRequest.load("http://yourpathtoyourserver/file.aspx?listselectedvalue=something");
function parseXMLRequest(loaded)
{
trace("hi");
}
您还可以让页面以这种方式返回数据,这不仅仅是单向沟通。
答案 3 :(得分:0)
假设您正在使用Action Script 2。
阅读每个代码底部的重要说明,这些说明与从闪存到.net页面发送和检索数据有关。代码的解释位于代码内的注释中。
Flash部分(动作脚本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部分
public void ProcessData
{
//process the data here
Response.Write("status=processed&");
}
重要提示: 要将数据/消息发送回闪存,您可以使用 Response.Write 。但是,如果您希望Action Script解析来自.Net页面的已发布消息/数据,请记住,您必须在消息末尾包含& 符号。在解析数据/消息时,Action Script将停在& 符号处,因此只留下剩余的消息,只在发送变量下获取消息。