Re: [問題] XML檔案取Node的値

看板Flash作者 (You guess)時間15年前 (2011/03/28 18:28), 編輯推噓6(6029)
留言35則, 4人參與, 最新討論串5/5 (看更多)
恕刪 抱歉!! 今天清晨,我提出來的問題完全是我弄錯了,睡醒後再重新弄一次,發現我提的 問題是不存在的,完全搞錯Orz,真的很抱歉。 我先貼我flash的程式碼 var myLoader:URLLoader = new URLLoader(); myLoader.load(new URLRequest("Test_XML.aspx?ran="+randRange(0,9999))); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 跟之前的http://IP/Test_XML.aspx?ran=6731寫法ㄧ樣 IP代表網址 flash會呼叫下面的Test_XML.aspx的程式碼產生XML,但是trace(old_xml)的是空的, 但是Visual studio 在debug模式下有看到flash 呼叫該網頁,並產生XML資料, 可是為什麼flash沒收到Test_XML.aspx產生的XML資料? old_xml = new XML(myLoader.data); 再來是Test_XML.aspx的程式碼 (產生XML) XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 我也有將此處改成寫入檔案,確實也有產生檔案。 writer.WriteStartDocument(); writer.WriteStartElement("Node"); //Node的內容是要給Flash使用的 writer.WriteStartElement("NodeInformation"); //存入使用者ID writer.WriteElementString("UesrID", usi.UserID); //給錄音檔案一個檔案名稱 writer.WriteElementString("Time", DateTime.Now.ToString("yyyyMMddHHmmssffff")); //使用者點選哪一個NodeID writer.WriteElementString("NodeID", Session["NodeID"].ToString()); writer.WriteEndElement(); writer.WriteEndElement(); writer.WriteEndDocument(); writer.Flush(); writer.Close(); 我的作法是參考別人給我的程式碼,只是他是用AS 2.0,我的是AS 3.0 , 還是作業系統也會有差,他的OS 是 XP, 我的OS 是 Server 2003 。 現在真的毫無頭緒,希望S大能給我ㄧ下建議,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.177.53

03/28 18:48, , 1F
load()以後,要偵聽外部資料載入的的進度。
03/28 18:48, 1F

03/28 19:43, , 2F
加入監聽才呼叫把data轉給xml吧
03/28 19:43, 2F

03/28 21:06, , 3F
可以說詳細一點嗎? 不是很懂
03/28 21:06, 3F

03/28 21:20, , 4F
myLoader.load(...............) 之後
03/28 21:20, 4F

03/28 21:20, , 5F
myLoader.addEventListener(Event.COMPLETE,func)
03/28 21:20, 5F

03/28 21:21, , 6F
function func(event:Event){
03/28 21:21, 6F

03/28 21:21, , 7F
old_xml = new XML(myLoader.data)
03/28 21:21, 7F

03/28 21:21, , 8F
...
03/28 21:21, 8F

03/28 21:22, , 9F
}
03/28 21:22, 9F

03/28 21:22, , 10F
我試試
03/28 21:22, 10F

03/28 22:05, , 11F
還是取得null的値 我貼我寫的,麻煩大家幫我看ㄧ下
03/28 22:05, 11F

03/28 22:05, , 12F
myLoader = new URLLoader();
03/28 22:05, 12F

03/28 22:06, , 13F
myLoader.load(new URLRequest("Test_XML.aspx?ran="+rand
03/28 22:06, 13F

03/28 22:06, , 14F
Range(0,9999)));
03/28 22:06, 14F

03/28 22:06, , 15F
myLoader.addEventListener(Event.COMPLETE, xmlLoaded);
03/28 22:06, 15F

03/28 22:07, , 16F
function xmlLoaded(e:Event){
03/28 22:07, 16F

03/28 22:07, , 17F
old_xml=new XML(e.target.data);
03/28 22:07, 17F

03/28 22:07, , 18F
UserID = old_xml.NodeInformation.UesrID;
03/28 22:07, 18F

03/28 22:07, , 19F
Time = old_xml.NodeInformation.Time;
03/28 22:07, 19F

03/28 22:07, , 20F
NodeID = old_xml.NodeInformation.NodeID;
03/28 22:07, 20F

03/28 22:08, , 21F
}
03/28 22:08, 21F

03/28 22:22, , 22F
是new XML(myLoader.data)吧
03/28 22:22, 22F

03/28 22:23, , 23F
e是Event本身,你抓他的data應該不是xml啊
03/28 22:23, 23F

03/28 22:34, , 24F
改成old_xml = new XML(myLoader.data); 還是取不到値 Orz
03/28 22:34, 24F

03/29 00:02, , 25F
所以你是在哪裡取他的值? 別說是在xmlLoaded外面喔
03/29 00:02, 25F

03/29 00:06, , 26F
你直接用我 9277 回的那些code trace出來還是null的話
03/29 00:06, 26F

03/29 00:06, , 27F
表示你的url連過去沒東西
03/29 00:06, 27F

03/29 00:44, , 28F
是在function xmlLoaded(e:Event)裡面取値
03/29 00:44, 28F

03/29 00:46, , 29F
trace 出來還是null,我不懂為什麼flash載入Test_xml.aspx
03/29 00:46, 29F

03/29 00:47, , 30F
Visual studio 在Debug模式下,有看到此頁面在產生XML的
03/29 00:47, 30F

03/29 00:51, , 31F
資料串流,看起來flash沒有收到XML的資料串流,難道AS 2.0
03/29 00:51, 31F

03/29 00:52, , 32F
的可以,AS 3.0 不能用這個的方式嗎?
03/29 00:52, 32F

03/29 13:42, , 33F
你在瀏覽器可以開那個aspx嗎 swf跟aspx同路徑?
03/29 13:42, 33F

03/30 01:03, , 34F
瀏覽器可以開,swf與aspx放在同一個資料夾下
03/30 01:03, 34F

03/30 01:04, , 35F
到底有什麼是我沒注意到的
03/30 01:04, 35F
文章代碼(AID): #1Da6BKGX (Flash)
文章代碼(AID): #1Da6BKGX (Flash)