Re: flash&xml,可以幫我看一下程式碼嗎

看板Flash作者 (AKE)時間21年前 (2003/11/02 23:13), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《sshain (飛飛)》之銘言: : 不知為什麼跑不出來 : doc=new XML(); : doc.load("Homework1.xml"); : doc.ignoreWhite=true : doc.onLoad=linkdata_onLoad; : stop(); : function linkdata_onLoad (success){ : if (success) : { : e=this.childNodes; ^^^^^^^^^^^^^^^^^ e=this.childNodes[0] // = firstChild : trace(e); : e1=e[0].childNodes; ^^^^^^^^^^^^^^^^^^ e1=e.childNodes[0]// : e11=e1[0].childNodes; : title=e11[0].firstChild.nodeValue; : ﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ : 這行不知為啥跑不出來 : 就是要顯示Homewrok1的這個 : <內容>下列哪一項正確</內容> : option1.content=e11[1].firstChild.nodeValue; : option2.content=e11[3].firstChild.nodeValue; : option3.content=e11[5].firstChild.nodeValue; : } : }; : option1.onRollOver=function () { : gotoAndStop(2); : }; : option1.onRollOut=function () { : gotoAndPlay(1); : }; : option2.onRollOver=function () { : gotoAndStop(2); : }; : option2.onRollOut=function () { : gotoAndPlay(1); : }; : option3.onRollOver=function () { : gotoAndStop(2); : }; : Homework1的程式碼 : <?xml version="1.0" encoding="UTF-8" ?> : <content> : <題目> : <內容>下列哪一項正確</內容> : <選項1>(1)3-1=2</選項1> : <答案>right</答案> : <選項2>(2)1-1=1</選項2> : <答案>wrong</答案> : <選項3>(3)2-1=2</選項3> : <答案>wrong</答案> : </題目> : </conten> ^^ 好像少了一個 t : 麻煩各位看一下好嗎<(_ _)>謝謝 其實啊, 你的問題最主要是那個 igorneWrite 不知是不是真的是你想像中的作用, node之間的換行已經是一個child了, 另外那個 <? xml .... ?>也算是 node. 所以你的childNodes的位置會估算錯誤, 如果你用這一段看看 : for (var i=0; i<=e.childNodes.length; i++){ trace("e.childNodes["+i+"]="+e.childNodes[i]) } 就會看得一清二楚, 告訴你如果我做會怎樣做, 第一, nodeName 我應該不會取中文, 第二, 我把格式這樣定: (按照你的取名法) <問題 num="1"> <內容>YYYYYYYYYYY</內容> <選項 num="1" ans="right">XXXXXXX</選項> <選項 num="2" ans="wrong">XXXXXXX</選項> <選項 num="3" ans="wrong">XXXXXXX</選項> </問題> <問題 num="2"> <內容>YYYYYYYYYYY</內容> <選項 num="1" ans="right">XXXXXXX</選項> <選項 num="2" ans="wrong">XXXXXXX</選項> <選項 num="3" ans="wrong">XXXXXXX</選項> <選項 num="4" ans="wrong">XXXXXXX</選項> </問題> 看得出選項改成這樣的好處吧, 就是不一定是只三個選項, 不過, 如果attribute用中文的話, flash應該讀不出來... 第三, 我會採取"認標纖"的策略, 就是 for(var n=0; n<=X.childNodes.length; n++){ if(X.childNodes[n].nodeName=="問題"){ myBuildQuestion(X.childNodes[n]) } } function myBuildQuestion(obj){ for(var n=0; n<=obj.childNodes.length; n++){ if(obj.childNodes[n].nodeName=="內容"){ myBuildContent(obj.childNodes[n]) } else if(obj.childNodes[n].nodeName=="選項"){ myBuilChoice(obj.childNodes[n]) } } } function myBuildChoice(obj){ //建立選項 } function myBuildContent(obj){ // 建立內容 } 這樣的好處是, 可以彈性的處理我想要和不想要的資訊, 只處理我認得的東西, 然後再call不同的function來處理, 另外, 這樣的話, xml檔可以換行, ^o^ 如果用這種 e.firstChild.ChildNodes[3].ChildNodes[2] 這種方法來寫的話, 是可以, 不過寫得有點硬.... 以後在 .xml 某個地方插一句的話, 那些第幾個child都要重算了, 好! 我已經把我不少的經驗告訴你了, 祝你愉快的完成! -- 我是一杯心酸的果汁... 果汁內懸浮著很多傷心的粒子... 我正需要一支攪拌匙不斷的把我攪拌... 免得粒子在寧靜中沉澱成塊......。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.85.48.159

推 163.13.177.98 11/12, , 1F
感謝<(_ _)>
推 163.13.177.98 11/12, 1F
文章代碼(AID): #_fHyKb6 (Flash)
文章代碼(AID): #_fHyKb6 (Flash)