昨天晚上開(kāi)始寫(xiě)的這個(gè)東西, 寫(xiě)完了發(fā)現(xiàn)原來(lái)mirycat已經(jīng)寫(xiě)過(guò)了: 使用 URLRequest 和 URLLoader 與服務(wù)器交互 http://m.95time.cn/tech/multimedia/2006/3722.asp
不過(guò)我發(fā)現(xiàn)我和mirycat寫(xiě)的有不同的特點(diǎn) 所以還是發(fā)出來(lái),呵呵 希望能對(duì)學(xué)習(xí)as3的新手有點(diǎn)幫助.
先回顧一下as2中相關(guān)的解決辦法
相信大部分人用的都是LoadVars類(lèi)吧
1 var xianshi_lv = new LoadVars(); 2 xianshi_lv.bianliang1 = "變量一"; 3 xianshi_lv.bianliang2 = "變量二"; 4 xianshi_lv.bianliang3 = "變量三"; 5 xianshi_lv.sendAndLoad("http://10.7.87.222/show.asp? bianliang="+random(9999), xianshi_lv, "post"); 6 xianshi_lv.onLoad = function(chenggong:Boolean) { 7 if (chenggong) { 8 trace(xianshi_lv) 9 }; }
- 第1行:定義LoadVars對(duì)象,這家伙在as2時(shí)代幾乎把所有連接外部數(shù)據(jù)的事情都做完了。無(wú)敵!
- 第2 3 4 行:在LoadVars對(duì)象中存儲(chǔ)變量,直接發(fā)送到外部腳本中。
- 第5行:執(zhí)行sendAndLoad方法,意思是send后,load回調(diào)的數(shù)據(jù)。
- 第6行:onLoad事件,判斷l(xiāng)oad回調(diào)數(shù)據(jù),
- 第7行:判斷l(xiāng)oad回調(diào)是否成功。
在as2時(shí)代,LoadVars類(lèi)把存儲(chǔ)變量,連接外部數(shù)據(jù),接受回調(diào)數(shù)據(jù)這些事情都做完了。筆者也弄很久的as2,覺(jué)得這方法不錯(cuò),學(xué)習(xí)起來(lái)也很簡(jiǎn)單。 但是as3不同,為了分工清晰,把上面的存儲(chǔ)變量,連接外部數(shù)據(jù),接受回調(diào)數(shù)據(jù)這幾個(gè)事情都分散開(kāi)了。一定程度上,本人覺(jué)得有點(diǎn)麻煩。不知道adobe是怎么想的。也許是本人還沒(méi)發(fā)現(xiàn)adobe的真正意圖· 既然as3來(lái)了,還是按他的規(guī)矩辦吧 他是什么規(guī)矩呢?
第一部分:準(zhǔn)備發(fā)送數(shù)據(jù)
1:考慮連接的外部url地址了。
as2中把url地址,變量,通通寫(xiě)到LoadVars類(lèi)里面。變量少?zèng)]什么,要是變量多起來(lái),那就有點(diǎn)麻煩,遇上要?jiǎng)討B(tài)修改變量那更加麻煩了。as3索性把把這一部分又分為兩塊,統(tǒng)一到URLRequest對(duì)象里面。單純的url地址用URLRequest.url表示,變量用URLRequest.data表示。修改起來(lái)方便許多。
注意url地址也可以在使用URLRequest構(gòu)造函數(shù)的時(shí)候?qū)戇M(jìn)去。
2:數(shù)據(jù)傳送方法,post還是get。
as3狠了心了,要把它分的徹徹底底。把傳送方法也弄到URLRequest對(duì)象里面去。用URLRequest對(duì)象的method屬性表示。
同時(shí)也有兩種定義改屬性的方法:
request.method = URLRequestMethod.POST;//幫助文件中多用這種定義方式 request.method = "post";
以上兩句是等效的。你可以試試trace(URLRequestMethod.POST)。輸入是 post。 由于as3的默認(rèn)method是get,建議都顯示定義為post。
出處:藍(lán)色理想
責(zé)任編輯:tada
上一頁(yè) 下一頁(yè) AS3中數(shù)據(jù)發(fā)送與接收 [2]
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|