Re: [問題] flash中可設全域變數嗎?

看板Flash作者 (我是沒牌的營養師!)時間18年前 (2007/04/25 16:58), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/4 (看更多)
※ 引述《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

04/25 19:04, , 1F
謝謝 ^^
04/25 19:04, 1F
文章代碼(AID): #16BnXHGp (Flash)
文章代碼(AID): #16BnXHGp (Flash)