[問題] 非常奇怪的『變數』生存範圍

看板Flash作者 (不可或缺的咖啡因)時間18年前 (2007/07/29 23:56), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
= =" 事情是醬子的,目前正在學習XML,所以從網路上的範例,找到了 一個Flash&XML的範例。 經過幾個小時的分析,也看的懂每一行的用意,但是卻發現了一個我覺 得很奇怪的事情。 之前上Flash程式課的時候,老師有說,要增加寫程式的功力,就要從 寫程式的習慣養起,該宣告就要宣告,反正就是一切要照正規來,以後 才不會自己寫的亂七八糟,一直到現在,我也都還是這樣。 網路上的高手很多,所以我想也可能是他們自己寫出來自己都看的懂, 但就在我設計自己的Flash時,發現了一個很怪的方式,應該是小的才 疏學淺,所以一直想不懂,這個高手所寫的範例當中,這種『指定』方 法應該怎麼解釋(在此感謝這個範例的作者奶綠茶,你寫的範例真的是詳 細到根本是佛心來著。) ===============================問題開始線===================================== 中文說明: 在影格上,宣告了一個新的xml物件 var test_xml:XML = new XML() 開始下載XML test_xml.Load("test_xml.xml") 開始使用onLoad test_xml.onLoad = function (succeess){ if(succeess){ ParseXML() } } function ParseXML(){ testNum = firstChild.childNodes.length } function MC_Effect(){ trace(testNum) } MC_Effect() 問題來了,在上面ParseXML()當中,原作的指定方式是 testNum = firstChild.childNodes.length 而我以為正常的寫法應該是 var testNum:Number = firstChild.childNodes.length 所以,在原作的另一個接收該變數testNum的function,他是可以收到的。 而我因為已經將該變數testNum宣告在裡面,所以MC_Effect是收不到的。 我的問題來了: 一‧請問這樣子的指定方式,應該稱為什麼呢?因為它沒宣告,我不曉得 這應該是什麼形態(Number?String?),如果要trace它的型態,應該要 怎麼寫呢?(trace(???)因為trace(testNum),它只會丟結果) 二‧請為這代表testNum算是_global嗎? = =""可是我又有試過,在影格最 上方,宣告_golbal.testNum,可是在MC_Effect裡面也是收不到阿? 也就是代表說,我把原作的指定方式想做是_global是錯誤的吧! = ="""那這樣子的話,它這樣子到底是?????不是區域變數?也不是全域 變數?(+ = ")...今天想這個問題想好久 三‧還是說,= = 其實這是某種偷吃步呢?因為我將我的宣告方式改變之後 ,我的MC_Effect就像『台灣大哥大』的廣告一樣,testNum這個變數 "到哪裡都收的到"。 (@________@""") 我真的覺得好神奇喔! 小的才疏學淺,希望有高手可以幫小的解惑,m(_ _)m拜託拜託講解一下! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.178.144
文章代碼(AID): #16hBYk1s (Flash)
文章代碼(AID): #16hBYk1s (Flash)