在类中使用setInterval()随感。

      AS程序设计 2004-10-26 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。
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}