阅读C#响应。使用Actionscript 3.0编写
我试图从C#响应中读入字符串。将(“字符串示例”)写入swf文件的ActionScript中 我的actionscript代码如下所示阅读C#响应。使用Actionscript 3.0编写,c#,actionscript-3,C#,Actionscript 3,我试图从C#响应中读入字符串。将(“字符串示例”)写入swf文件的ActionScript中 我的actionscript代码如下所示 var requestVars:URLVariables = new URLVariables(); requestVars.ornTest = "test"; var request:URLRequest = new URLRequest(); request.url = "http://localhost/ap
var requestVars:URLVariables = new URLVariables();
requestVars.ornTest = "test";
var request:URLRequest = new URLRequest();
request.url = "http://localhost/apps/game/tree/DesignFlash.aspx";
request.method = URLRequestMethod.GET;
request.data = requestVars;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
try
{
loader.load(request);
}
catch (error:Error)
{
trace("Unable to load URL");
}
private function loaderCompleteHandler(event:Event):void
{
var variables:URLVariables = new URLVariables( event.target.data );
if(variables.success)
{
var ornArray = deserializeString("read string from C# here");
for(var i:int=0;i<ornArray.length;i+=3)
{
addOrnamentProperty(ornArray[i],ornArray[i+1],ornArray[i+2]);
}
addOrnamentsFromArrayList();
}
}
private function httpStatusHandler (event:Event):void
{
//trace("httpStatusHandler:" + e);
}
private function securityErrorHandler (event:Event):void
{
trace("securityErrorHandler:" + event);
}
private function ioErrorHandler(event:Event):void
{
trace("ioErrorHandler: " + event);
}
protected void Page_Load(object sender, EventArgs e)
{
var test = Request["ornProperties"];
if (!String.IsNullOrEmpty(Request.Params["ornTest"]))
{
string paramVars = Request.Params["ornTest"];
Response.Write("this string");
}
}
如何将C#中的“this string”写入SWF文件的ActionScript中,此时loaderCompleteHandler中的“read C#string here”字样
谢谢首先进行简单的跟踪,以确保从服务器获得响应:
private function loaderCompleteHandler(event:Event):void
{
trace("Received server response:", event.target.data);
}
您的响应应该在返回值的数据
字段中。如果要返回键值对(这是当前ActionScript代码所期望的),则需要格式化返回文本以支持它
e、 g
我对C#不太了解,不知道Response
是否会对数据进行url编码,但数据应该是url编码的。如果像这样发送键值对,那么可以使用示例中的urlvaries
将其解析为更容易使用的形式
e、 g
现在我不是XML的超级粉丝,但是Flash可以很好地使用这种格式。如果在响应中返回xml:
Response.Write("<root><blah>foo</blah></root>");
然后您可以使用E4X来操作数据。天气真的很好。我用它来做任何比使用AMF的完全Flash远程处理更简单的事情
如果您要在服务器和闪存之间来回发送大量数据,您应该研究远程处理和AMF。事实上,您非常接近 请确保清除.aspx文件(顶部的Page元素除外),并在响应之前调用Response.clear()。写出文本。否则,您将随文本一起发送html、head和body标记 然后,只需查看Actionscript中load complete处理程序中的loader.data:
private function loaderCompleteHandler(event:Event):void
{
var variables:URLVariables = new URLVariables( event.target.data );
if(variables.success)
{
var ornArray = deserializeString(loader.data); //just look at loader.data here.
for(var i:int=0;i<ornArray.length;i+=3)
{
addOrnamentProperty(ornArray[i],ornArray[i+1],ornArray[i+2]);
}
addOrnamentsFromArrayList();
}
}
C#:
动作脚本:
private function loaderCompleteHandler(event:Event):void
{
var variables:URLVariables = new URLVariables( event.target.data );
if(variables.success)
{
var ornArray = deserializeString(loader.data); //just look at loader.data here.
for(var i:int=0;i<ornArray.length;i+=3)
{
addOrnamentProperty(ornArray[i],ornArray[i+1],ornArray[i+2]);
}
addOrnamentsFromArrayList();
}
}
私有函数loaderCompleteHandler(事件:事件):void
{
变量:URLVariables=新的URLVariables(event.target.data);
if(变量.成功)
{
var ornArray=deserializeString(loader.data);//请在此处查看loader.data。
for(var i:int=0;这正是我需要知道的。loader.data是关键。非常感谢
private function loaderCompleteHandler(event:Event):void
{
var loader:URLLoader = URLLoader(event.target);
var xml:XML = new XML(loader.data);
}
protected void Page_Load(object sender, EventArgs e)
{
var test = Request["ornProperties"];
if (!String.IsNullOrEmpty(Request.Params["ornTest"]))
{
string paramVars = Request.Params["ornTest"];
Response.Clear(); //just to make sure you're not sending anything else.
Response.Write("this string");
}
}
private function loaderCompleteHandler(event:Event):void
{
var variables:URLVariables = new URLVariables( event.target.data );
if(variables.success)
{
var ornArray = deserializeString(loader.data); //just look at loader.data here.
for(var i:int=0;i<ornArray.length;i+=3)
{
addOrnamentProperty(ornArray[i],ornArray[i+1],ornArray[i+2]);
}
addOrnamentsFromArrayList();
}
}