[問題] AS3.0 呼叫URLLoader問題

看板Flash作者 (省了金錢卻浪費時間...)時間13年前 (2011/05/13 20:45), 編輯推噓2(2057)
留言59則, 2人參與, 最新討論串1/1
/////////////////JSP程式開頭以及輸出格式//////////// <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> out.print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); out.print("<QString>"); out.print("<Question>"+XMLQuestion+"</Question>"); out.print("</QString>"); XMLQuestion是合成之後的字串 ///////////////////////////////////////////////////// 今天遇到一個怪問題... 我的宣告程式碼如下 var ObjStateUrl:String = "http://xxxxxxxx:8080/ObjectRandomState.jsp"; var ObjStateRequest:URLRequest = new URLRequest(ObjStateUrl); var ObjStateVar:URLVariables = new URLVariables(); ObjStateRequest.data = ObjStateVar; var ObjStateLoader:URLLoader = new URLLoader(); //ObjStateLoader.load(ObjStateRequest); ObjStateLoader.addEventListener(Event.COMPLETE, ObjectStateHandler); var ObjStateXML:XML; var StateTemp:String = ""; var ObjArray:Array = [];//用來產生場景上各物件用 function ObjectStateHandler(event:Event):void { ObjStateXML = new XML(ObjStateLoader.data); StateTemp = ObjStateXML.child("ObjectState")[0].toString(); var debugText:TextField = new TextField(); debugText.text = "測試IE是否看的到"; addChild(debugText); } //////////其他無關的程式碼或宣告/////// ///////////////////////////////// ///////////另一URL/////////////// var ObjStateUrl2:String = "http://xxxxxxxx:8080/aaa.jsp"; var ObjStateRequest2:URLRequest = new URLRequest(ObjStateUrl2); var ObjStateVar2:URLVariables = new URLVariables(); ObjStateRequest2.c = d; ObjStateRequest2.data = ObjStateVar2; var ObjStateLoader2:URLLoader = new URLLoader(); ObjStateLoader2.load(ObjStateRequest2); ObjStateLoader2.addEventListener(Event.COMPLETE, ObjectStateHandler2); var ObjStateXML2:XML; var StateTemp2:String = ""; function ObjectStateHandler2(event:Event):void { ObjStateXML2 = new XML(ObjStateLoader2.data); StateTemp2 = ObjStateXML2.child("ObjectState")[0].toString(); ObjStateVar.a = b; ObjStateLoader.load(ObjStateRequest); //執行此URL } 此swf檔嵌入html網頁中 這個swf檔此段程式碼在IE瀏覽器中不知道為什麼無法執行 ObjStateLoader.load(ObjStateRequest);不會往回執行URL程式 而在Firefox中卻可以正常執行 不知道這IE觀看的問題有辦法解決嗎.... 還是說我想往回呼叫URL時應該怎樣改寫才可以執行呢? 麻煩各位大大教我一下>"< -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.135.11.98

05/14 12:51, , 1F
IE的FlashPlayer是9以上嗎?
05/14 12:51, 1F

05/14 12:57, , 2F
恩...已經更新到最新了...架在TOMCAT上> <
05/14 12:57, 2F

05/14 13:25, , 3F
想請問,你怎麼確定"無法執行"呢?
05/14 13:25, 3F
※ 編輯: mygod0520 來自: 140.135.11.98 (05/14 13:41)

05/14 13:42, , 4F
我在上面1的Listener中後來放了一段text 如果有執行
05/14 13:42, 4F

05/14 13:42, , 5F
就會顯示出來 用火狐看的到 IE則沒有QQ 不知道是不是跟
05/14 13:42, 5F

05/14 13:43, , 6F
我把load放在另一個讀取URL處理的listener中呼叫有關
05/14 13:43, 6F
※ 編輯: mygod0520 來自: 140.135.11.98 (05/14 13:46)

05/14 13:48, , 7F
我再上面的Listener中加入text"測試IE..."在2的Listener
05/14 13:48, 7F

05/14 13:49, , 8F
中去呼叫上面的URL IE看不到那段我加的字 火狐可以> <
05/14 13:49, 8F
※ 編輯: mygod0520 來自: 140.135.11.98 (05/14 13:50)

05/14 13:54, , 9F
在2個ObjectStateHandler中,都加入debugText看看??
05/14 13:54, 9F

05/14 13:55, , 10F
然後,第一個顯示訊息、跟第二個顯示訊息不同
05/14 13:55, 10F

05/14 13:55, , 11F
做為辨識。
05/14 13:55, 11F

05/14 13:56, , 12F
看起來,你的程式碼,是寫在一個單影格的.fla上?
05/14 13:56, 12F

05/14 13:59, , 13F
恩~是寫在同一影格上QQ 第二個JSP是有確定執行
05/14 13:59, 13F

05/14 14:00, , 14F
不過我佳看看TEXT在遞二個上面看看好了
05/14 14:00, 14F

05/14 14:05, , 15F
剛剛擺上去之後 2的TEXT確定看的到 不過一樣回CALL上面
05/14 14:05, 15F

05/14 14:05, , 16F
URL的TEXT IE使中出不來T_T
05/14 14:05, 16F

05/14 14:11, , 17F
你可以多監聽幾個事件看看,像是ioError,可能會有
05/14 14:11, 17F

05/14 14:11, , 18F
幫助。
05/14 14:11, 18F

05/14 14:12, , 19F
show看看ObjStateRequest是否真的存在,
05/14 14:12, 19F

05/14 14:13, , 20F
以及把加入debugText的動作,放在ObjectStateHandler
05/14 14:13, 20F

05/14 14:13, , 21F
內的第一行。
05/14 14:13, 21F
※ 編輯: mygod0520 來自: 140.135.11.98 (05/14 14:15)

05/14 14:15, , 22F
恩恩...我試試看T_T
05/14 14:15, 22F

05/14 14:18, , 23F
先確認URLLoader是否有發出HttpRequest吧!
05/14 14:18, 23F

05/14 14:21, , 24F
如果有發出HttpRequest,並且是拿到的資料是錯誤的。
05/14 14:21, 24F

05/14 14:22, , 25F
就需要檢查一下傳出參數,ObjStateVar.a = b;
05/14 14:22, 25F

05/14 14:30, , 26F
喔喔 發現是IOERROR...可是IE觀看才會發生的IOERROR怎麼
05/14 14:30, 26F

05/14 14:31, , 27F
檢查呢? 我是因為在ERROR Gunction印字才知道QQ
05/14 14:31, 27F

05/14 14:33, , 28F
打錯字 是Function QQ
05/14 14:33, 28F

05/14 14:36, , 29F
不過還是先感謝大大~^^
05/14 14:36, 29F

05/14 14:39, , 30F
你可以把ObjStateRequest跟ObjStateUrl,show出來看
05/14 14:39, 30F

05/14 14:50, , 31F
上面這兩個印出來網址沒錯 Request是[Object Request]?
05/14 14:50, 31F

05/14 14:50, , 32F
有辦法看回傳的值是什麼嗎QQ
05/14 14:50, 32F

05/14 14:51, , 33F
或者我XML用法有打錯嗎> <
05/14 14:51, 33F

05/14 15:11, , 34F
ObjStateVar.a = b,這個b是什麼?
05/14 15:11, 34F

05/14 15:13, , 35F
你的JSP收到一個a,會做什麼處理,如果a是錯誤值又會
05/14 15:13, 35F

05/14 15:14, , 36F
會怎麼處理?
05/14 15:14, 36F

05/14 15:22, , 37F
b是一String變數 a是b傳到jsp後找資料庫的資料 並將資料
05/14 15:22, 37F

05/14 15:23, , 38F
將資料合成一個字串 用XML格式out.print回來
05/14 15:23, 38F

05/14 15:24, , 39F
所以傳回來的資料每次都會改變 沒有對錯QQ
05/14 15:24, 39F

05/14 15:25, , 40F
目前查錯誤代碼式串流錯誤...不知道是哪邊寫法有問題
05/14 15:25, 40F

05/14 15:25, , 41F
JSP debug也沒出錯...Orz
05/14 15:25, 41F
※ 編輯: mygod0520 來自: 140.135.11.98 (05/14 15:30)

05/14 15:33, , 42F
我有補上我JSP的標頭 以及印出格式在最上面
05/14 15:33, 42F

05/14 15:33, , 43F
其他JSP內文應該不會有問題...都是資料處理而已+_+
05/14 15:33, 43F

05/14 15:34, , 44F
不知道是不是哪邊要設定Orz
05/14 15:34, 44F

05/14 15:42, , 45F
!!!剛剛把Request的method設成URLRequestMethod.POST;
05/14 15:42, 45F

05/14 15:43, , 46F
就沒有串流錯誤了!! 趕快測試看看~(狂叫 感謝大大^^
05/14 15:43, 46F

05/14 16:44, , 47F
為什麼換POST就好了呢?
05/14 16:44, 47F

05/14 17:19, , 48F
感覺應該是傳入的字串太長導致爆掉了!!
05/14 17:19, 48F

05/14 17:19, , 49F
如果是要跟HTTP URL作溝通的話 我看他文件寫說method要
05/14 17:19, 49F

05/14 17:20, , 50F
使用POST (預設是GET) GET應比較是用來抓取箱對位置的圖
05/14 17:20, 50F

05/14 17:20, , 51F
片之類用的吧~(我猜得QQ)
05/14 17:20, 51F

05/14 20:11, , 52F
喔喔,原來如此,謝謝喔。
05/14 20:11, 52F

05/14 20:14, , 53F
IE和FireFox所允許的URL長度不同。
05/14 20:14, 53F

05/14 20:16, , 54F
IE大約是2kB左右。而FireFox是100KB??
05/14 20:16, 54F

05/14 20:17, , 55F
所以在FireFox可以,而到IE卻爆掉。
05/14 20:17, 55F

05/14 20:22, , 56F
大於2KB的資料傳輸量,使用POST會是較好的選擇。
05/14 20:22, 56F

05/15 02:18, , 57F
我看網路上好像還有人用POST傳3MB的資料也沒問題 只是速
05/15 02:18, 57F

05/15 02:18, , 58F
度上的差異的樣子~這次被搞到以後還真的多學到了一些XD
05/15 02:18, 58F

05/15 02:19, , 59F
還好順利解決掉了0..0+
05/15 02:19, 59F
文章代碼(AID): #1DpIVTHe (Flash)
文章代碼(AID): #1DpIVTHe (Flash)