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:
 

  1. <%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%> 
  2. //把TestApp.html的内容全部复制到这里  
  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代码
 

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

 Xml数据如下:
 

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

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

Flex端代码: 

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

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

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

 【编辑推荐】

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

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-28 17:17:19

ASP.NET概述

2009-08-03 14:22:33

什么是ASP.NET

2009-07-31 17:35:02

ASP.NET线程安全

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入门教程

2009-07-24 15:47:35

ASP.NET与ASP

2009-07-29 09:38:06

Web开发ASP.NET

2009-07-29 10:56:54

ASP.NET构架与安

2009-07-21 15:50:47

ASP.NET控件JavaScript

2009-07-29 16:08:07

ASP和ASP.NET

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-07-29 17:11:25

ASP.NET ISA

2009-08-03 13:38:18

ASP.NET编程模型

2009-03-13 10:58:48

ASP.NetMVC框架编程

2009-07-28 14:10:14

2009-08-07 15:40:10

CompositeCo复合控件

2009-08-24 09:18:34

ASP.NET MVC

2009-07-23 11:11:41

点赞
收藏

51CTO技术栈公众号