2004/10/26 | 在类中使用setInterval()随感。
类别(AS程序设计) | 评论(5) | 阅读(180) | 发表于 15:19
在类中使用setInterval()随感。
下面看两段代码

class testA
{
    public var _arg:String="ok";
    public function testMethod():Void
    {
        setInterval(testInterval,500);
    }
    private function testInterval():Void
    {
        trace(_arg)
    }
}
--------------------------------------------------------
class testB
{
    public var _arg:String="ok";
    public function testMethod():Void
    {
        setInterval(testInterval,500,_arg);
    }
    private function testInterval(arg:String):Void
    {
        trace(arg)
    }
}
--------------------------------------------------------
大家测试一下两段代码,testA输出undefined,而testB会输出ok,导致上面的原因就是,虽然你把interval执行时的方法写在了类里面,但你在那个方法里面的代码中的this并不指向上类的实例,除非你是以 "类实例名称.方法名"来执行时,this才指向类的实例 否则它里面的this是指向interval,这是我上午遇到的问题,非常感谢THOR给我的教导,其实很多人在写代码的时候都没弄明白对象引用,而导致很多BUG和问题 ,所以以后关键不是急于写,而是在于你是不是弄清楚了程序到底是怎么运行的机理,这样在去写,才会有的放矢,才不会引起不必要的麻烦。非常感谢THOR。
0

评论Comments