作者aquarianboy (我是没牌的营养师!)
看板Flash
标题Re: [问题] flash中可设全域变数吗?
时间Wed Apr 25 16:58:54 2007
※ 引述《aquarianboy (我是没牌的营养师!)》之铭言:
: ※ 引述《jing007 (呜~合购版让我变肥肥肥猪)》之铭言:
: : 我是做音乐播放器 现卡在播放的轴不能拉
: : 即使能拉也不能唱 不然就是一直重头播 重头播的....每拉一次就重头播
: : 我做了Press(一个函式)去抓轨道的值称x
: : 而onMouseUp(一个函式)时便将x值放入播放音乐的函式中
: : 但是侦测时 发现在onMouseUp却是无定义的值
: : flash有全域变数的宣告方式吗?
: : 另有没有其他方式能制作这个轴....
: 我想会抓到undefined的值,是因为scope不对的关系
: 例如在onMouseUp里定义的变数,通常只能在该事件的范围内才"看"得到
: 除非像s大提到用_global来宣告全域变数
: 另外,把变数全部丢到_root上也是ok
: 但比较容易出问题的是
: 例如你在你的swf中宣告了一个叫_root.xxx的变数
: 刚好别人也宣告了一个xxx的变数,然後把你的档案包进来
: 就有可能会发生看起来莫名奇妙的bug了
: 所以全域型态的变数,在使用的时候尽量小心或是命名命的奇怪一点,减少重复的机会
: (建议是尽量少用...^^)
: 比较建议的方法,是把程式码写在时间轴上,而不要写在Button或MC上
: 例如原本on(release){...},改成abc_mc.onRelease = function(){...}
: 一开始可能不太习惯
: 习惯这样的写法之後,在程式码的控管上会轻松得多,不用一层一层的找程式码
: 而且这样的做法,变数的scope就会在时间轴上了
: 不用_global或_root的方法,都可以比较容易抓到了
: 供你参考 :)
关於e大问到变数Scope(生存空间? 范围? 不知道中文怎麽翻译比较好)
举个例子:
var A:Number = 99;
function TEST(){
var A:Number = 100; //在function TEST里面宣告了一个变数A
var B:Number = 101; //又再宣告了一个变数B
trace(A);
}
TEST(); //输出结果是 100,因为它先看到离自己最近的A
//如果没有变数A,它会看得到上层的A = 99
trace(A); //输出结果是 99,它"看"不到TEST function里的A,只看到最上层的A
trace(B); //输出结果是 undefined,因为它"看"不到TEST function里的B
以上就是变数scope的简单说明之一
不知道这样是否清楚了呢? :)
更细节的资料,可以到google翻一下Variable Scope的资料,应该会有更详细的资料
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.136.105
1F:推 etrexetrex:谢谢 ^^ 04/25 19:04