Flex与asp.net完美集合

开发 后端
本文向大家简单介绍一下Flex与asp.net结合使用,Flex的最终输出就是一张网页+一个flash(.swf文件)就是用他生成的网页的方式把那个.swf文件插入asp.net页面就可以了。

本文和大家重点讨论一下Flex与asp.net的结合,将Flex编译后的程序插入到asp.net页面和Flex程序与asp.net程序交互两大部分内容,希望本文的介绍能让你有所收获。

Flex与asp.net结合使用

1.将Flex编译后的程序插入到asp.net页面

Flex的最终输出就是一张网页+一个flash(.swf文件)就是用他生成的网页的方式把那个.swf文件插入asp.net页面就可以了。

Flex3项目名字叫TestApp,最简单直接的办法就是,把"bin-debug"目录下的:
◆TestApp.html
◆TestApp.swf
◆AC_OETags.js
◆playerProductInstall.swf
这4个文件复制到asp.net网站下面,打开TestApp.html,把内容复制到asp.net程序页面(.aspx文件)中。
比如Default.aspx:
 

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%> 
//把TestApp.html的内容全部复制到这里  
//....  
//... 
  • 1.
  • 2.
  • 3.
  • 4.

总而言之Flex3最后编译成了一个.swf文件而已,这个文件在网站里面插入的方法和普通的flash动画的那种.swf文件的使用方法是一样的。
还有其他的要求:Flex3程序和网页还有交互,请用"Flexexternalinterface"搜索

2.Flex程序与asp.net程序交互

可以使用Flex的Loader往asp.net发送请求,获取xml。
也可以使用ExternalInterface和网页中的js交互,让js发送ajax请求到asp.net。

下面有一实例,目标是:在Flex端将数据Post到asp.net页面中,并将返回的xml数据显示出来

//Asp.net端代码
//getxml.aspx代码,保留一行即可,删除其他的html代码
 

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="getxml.aspx.cs"Inherits="getxml"%> 
 
//getxml.aspx.cs  
//usingSystem...  
usingSystem.Xml;  
publicpartialclassgetxml:System.Web.UI.Page  
{  
protectedvoidPage_Load(objectsender,EventArgse)  
{  
stringuser_pkid=System.Web.HttpContext.Current.Request.Form["user_pkid"];  
ifuser_pkid!=null)  
{  
CreateXml();//创建Xml的方法,可使用XmlTextWriter、XmlDocument,或者直接读取Xml文件等待  
}  
}  
 
privatevoidCreateXml()  
{  
XmlDocumentdoc=newXmlDocument();  
XmlNoderoot=doc.CreateElement("channel");  
 
XmlElementtitleElm=doc.CreateElement("title");  
titleElm.InnerText="blogweather";  
 
//...  
 
root.AppendChild(titleElm);  
doc.AppendChild(root);  
 
XmlTextWriterxw=newXmlTextWriter(Response.OutputStream,System.Text.Encoding.UTF8);//写到页面返回值中  
xw.Formatting=Formatting.Indented;//将Xml格式化  
doc.Save(xw);  
xw.Flush();  
xw.Close();  
}  
}  
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.

 Xml数据如下:
 

<?xmlversionxmlversion="1.0"encoding="UTF-8"?> 
<channel> 
<title>blogweather</title> 
<link>http://www.blogweather.net</link> 
<description>博客天气预报</description> 
</channel> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

方法一:
如果所有值均在xml数据中,而且不需要拿这些数据做二次分析,则推荐使用HTTPService控件

Flex端代码: 

<?xmlversionxmlversion="1.0"encoding="utf-8"?> 
<mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"initialize="init()"> 
<mx:Script> 
<![CDATA[  
importmx.messaging.AbstractConsumer;  
importflash.events.MouseEvent;  
importmx.controls.Alert;  
 
privatefunctioninit():void  
{  
getxml.url="http://www.blogweather.net/getxml.aspx";//接收Post方法的页面  
vardata:Object=newObject();  
data["user_pkid"]=this.parameters.user_pkid;  
getxml.send(data);  
}  
]]> 
</mx:Script> 
<mx:HTTPServiceidmx:HTTPServiceid="getxml"showBusyCursor="true"useProxy="false"method="POST"> 
</mx:HTTPService> 
<mx:TextAreawordWrapmx:TextAreawordWrap="true"editable="false"enabled="true"id="lb_title"> 
<mx:text>{getxml.lastResult.channel.title}</mx:text> 
</mx:TextArea> 
</mx:Application> 
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

 方法二:
如果要将数据进行分析,则要使用URLLoader和URLRequest
Flex端代码: 

<?xmlversionxmlversion="1.0"encoding="utf-8"?> 
<mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml"initialize="init();"> 
<mx:Script> 
<![CDATA[  
importmx.messaging.AbstractConsumer;  
importmx.messaging.channels.StreamingAMFChannel;  
importflash.events.MouseEvent;  
importmx.controls.Alert;  
 
publicvarmyLoader:URLLoader=newURLLoader();  
publicvarmyRequest:URLRequest;  
publicvaruser_pkid:String;  
 
privatefunctioninit():void  
{  
varhttp://www.cnblogs.com/glaivelee/admin/String="http://www.blogweather.net/getxml.aspx";  
myRequest=newURLRequest(url);  
myRequest.method=URLRequestMethod.POST;  
vardata:URLVariables=newURLVariables();  
//接收来自flash的参数调用,比如flash文件为loadxml.swf,带参数loadxml.swf?user_pkid=10001  
data.user_pkid=this.parameters.user_pkid;//获取10001  
myRequest.data=data;  
myLoader.load(myRequest);  
myLoader.addEventListener(Event.COMPLETE,onLoadComplete);  
}  
 
privatefunctiononLoadComplete(event:Event):void  
{  
varmyxml:XML;  
varloader:URLLoader=URLLoader(event.target);  
myxml=newXML(loader.data);  
 
lb_title.text=myxml.child("channel")[0].child("title");  
if(lb_title.text=="blogweather")  
{  
Alert("页面名称为:博客天气预报");  
}  
}  
 
]]> 
</mx:Script> 
<mx:TextAreawordWrapmx:TextAreawordWrap="true"editable="false"enabled="true"id="lb_title"> 
<mx:text>lb_title</mx:text> 
</mx:TextArea> 
</mx:Application> 
 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.

 【编辑推荐】

  1. 深入学习Flex组件生命周期
  2. Flex2.0Beta1新功能出炉
  3. 技术分享 如何重写Flex组件
  4. FlexBuilder3.0与Eclipse3.4的完美结合
  5. 剖析Flex DataGrid分页控件的两种分页形式用法
责任编辑:佚名 来源: 5iFlex.com
相关推荐

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-12-02 09:07:45

ASP.NET 4.0

2009-07-29 17:29:46

ASP与ASP.NET

2009-07-22 17:45:35

ASP.NET教程

2009-07-21 15:50:47

ASP.NET控件JavaScript

2009-07-31 17:35:02

ASP.NET线程安全

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入门教程

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-07-24 15:47:35

ASP.NET与ASP

2009-07-29 17:11:25

ASP.NET ISA

2024-12-05 08:14:41

2009-07-29 10:56:54

ASP.NET构架与安

2009-07-29 09:38:06

Web开发ASP.NET

2009-08-03 17:35:07

ASP.NET WebASP.NET编程工具

2009-07-28 09:02:32

asp.net aja

2009-07-27 10:22:43

ASP.NET Dro

2009-07-29 16:08:07

ASP和ASP.NET

2009-08-03 13:38:18

ASP.NET编程模型

2009-08-07 15:40:10

CompositeCo复合控件
点赞
收藏

51CTO技术栈公众号