作者icedesign (不可或缺的咖啡因)
看板Flash
标题[问题] 非常奇怪的『变数』生存范围
时间Sun Jul 29 23:56:27 2007
= =" 事情是酱子的,目前正在学习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