Re: [問題] 請問要怎麼在物件本身使用繼承而得的變數?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Flash 近期熱門文章
PTT數位生活區 即時熱門文章