Re: [問題] 請問要怎麼在物件本身使用繼承而得的變數?

看板Flash作者 (亂打的)時間19年前 (2005/11/13 19:25), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《Sibevin (天才藝術家)》之銘言: : ※ 引述《kudoropu (亂打的)》之銘言: : : 太神奇了,繼承而得的東西居然不能在自己裡面取用? : : 情形是: : : class A extends MovieClip { : : var t:Number = 8; : : } : : class B extends A { : : trace(t); : : } : : 得到的結果是undefined. : : 但是在fla的影格裡寫 : : var a = new B(); : : trace(a.t); : : 卻可以得到數值!? : : 這樣是正常的嗎?還是要怎麼做才能在物件自身裡使用繼承來的變數? : 我測試的結果 : 在class中似乎不能使用trace : 我修改的了你的程式如下 : class A extends MovieClip { : var t:Number = 8; : } : class B extends A { : var varInB:Number = t; : } : 結果varInB = 8 : 因此物件裡使用繼承來的變數是沒有問題的 : 只是在class中不能用trace語法 我發現問題出在哪兒了...(不代表解決了> <),好像和繼承無關. 是因為我把trace寫在listener使用的函數裡,結果那個函數就變得和該物件無關了...怪. class A extends MovieClip { var t:Number = 8; var listener = new Object(); function A { trace(t); //8 listener.onKeyDown = f1; Key.addListener(listener); this.onRelease = f2; } function f1() { trace(t); //undefined } function f2() { trace(t); //8 } } 這樣一來,f1()就不能取用物件裡的任何變數或函數了,只有像f2()直接指到this裡才行. 可問題是MC沒有onKeyDown和onKeyUp啊~~~~ 又不能用按鈕... 難道只能用絕對路徑嗎? 有沒有辦法把一個以上的變數傳進去呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.102.50
文章代碼(AID): #13ToAu8a (Flash)
文章代碼(AID): #13ToAu8a (Flash)