flax+.net05开发flash项目。
查找了N个资料,最后还是感觉官方网站提供的资料比较准确并且利于理解,只是全部是英文,需要耐着性子去一句一句的理解,最终总算圆满解决问题。
采用httpwebservice和后台asp.net进行通讯,然后后台数据处理就全部交给asp.net处理,这个相信熟悉。net的人都比较熟悉了,这里就不再啰嗦了。下面给出一个案例:
1.testflash.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Script>
- <![CDATA[
- import mx.rpc.events.ResultEvent;
- import mx.rpc.events.FaultEvent;
- import mx.controls.Alert;
- public function handlePlain(event:ResultEvent):void
- {
- shippingOptions.htmlText = event.result.toString();
- //Alert.show(shippingOptions.htmlText);
- }
- public function handleFault(event:FaultEvent):void
- {
- Alert.show(event.fault.faultString, "Error");
- }
- ]]>
- </mx:Script>
- <mx:HTTPService result="handlePlain(event);" fault="handleFault(event);" id="plainRPC" resultFormat="text"
- url="http://localhost:2185/WebSite1/Gateway.aspx"
- useProxy="false">
- <mx:request xmlns="">
- <zipcode>{tname.text}</zipcode>
- <pounds>{tpwd.text}</pounds>
- </mx:request>
- </mx:HTTPService>
- <mx:Button x="272" y="165" label="Button" id="btnOk" click="plainRPC.send()"/>
- <mx:TextInput x="252" y="74" text="Text" width="159" alpha="1.0" color="#020B0B" fontWeight="normal" enabled="true" id="tname"/>
- <mx:TextInput x="252" y="110" text="Text" width="159" id="tpwd" enabled="true" color="#090D0F"/>
- <mx:Text x="209" y="267" text="Text" width="214" height="162" id="shippingOptions"/>
- </mx:Application>
2.Gateway.aspx
- <script language="C#" runat="server">
- public void Page_Load(Object sender, EventArgs E)
- {
- int zipcode;
- double weight;
- if(Request.RequestType == "POST")
- {
- zipcode = Int32.Parse(Request.Form["zipcode"].ToString());
- weight = Double.Parse(Request.Form["pounds"].ToString());
- }
- else
- {
- zipcode = Int32.Parse(Request.QueryString["zipcode"].ToString());
- weight = Double.Parse(Request.QueryString["pounds"].ToString());
- }
- ShippingCalculator shippingcalculator = new ShippingCalculator();
- ShippingOption shippingOption = new ShippingOption();
- ArrayList al = shippingcalculator.getShippingOptions(zipcode, weight);
- StringBuilder stringBuilder;;
- foreach(Object obj in al)
- {
- stringBuilder = new StringBuilder();
- shippingOption = (ShippingOption)obj;
- stringBuilder.Append(shippingOption.getService());
- stringBuilder.Append(": ");
- stringBuilder.Append(shippingOption.getPrice());
- stringBuilder.Append(" USD" + "/n");
- Response.Write(stringBuilder.ToString());
- }
- }
- </script>
3.ShippingCalculator.cs
- public ArrayList getShippingOptions(int zipcode, double pounds)
- {
- ArrayList options = new ArrayList();
- double baseCost;
- baseCost = Math.Round((double)zipcode / 10000) + (pounds * 5);
- options.Add(new ShippingOption("Next Day", baseCost * 4));
- options.Add(new ShippingOption("Two Day Air", baseCost * 2));
- options.Add(new ShippingOption("Saver Ground", baseCost));
- return options;
- }
4.ShippingOption
- private String service;
- private double price;
- public ShippingOption(String aService, double aPrice)
- {
- this.service = aService;
- this.price = aPrice;
- }
- public void setService(String value)
- {
- this.service = value;
- }
- public void setPrice(double value)
- {
- this.price = value;
- }
- public String getService() { return this.service; }
- public double getPrice() { return this.price; }