作者kudoropu (乱打的)
看板Flash
标题Re: [问题] 请问要怎麽在物件本身使用继承而得的变数?
时间Sun Nov 13 19:42:07 2005
※ 引述《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