2012-01-11 159 views
0

我遇到了ActionScript 3的轻微问题,我来这里寻求一些帮助。从另一个类调用函数,从另一个类

我有两个类。一个叫做Sledge,另一个叫Sock,还有一个叫做Main的文档类。

我的问题如下:

  • 里面的Sledge,我称之为是Main文档类的内部定义的函数。我将如何去告诉班级去文档类并运行该功能?这对其他类还是仅适用于文档类也是如此?

  • 里面Sledge,我有以下声明:if(hitTestObject(sock.myHitArea)) { /* somecode*/ }

    sock是另一个单独的类的实例,并通过这一点已经被创建。但是当我尝试运行这个时,我被告知它没有被定义。我将如何去解决这个问题?

回答

1

您如何表达您的问题存在一些不明确的问题。如果您发布了问题代码的简短形式,这将有所帮助。

不过,我会尽量回答第一个问题:

内大锤的,我称之为是主文档类的内部定义的函数。我将如何去告诉班级去文档类并运行该功能?

您想要将Main类传递给Sledge类或使用更好的事件。如果把类它看起来像这样...

class Sledge { 
    private var main:Main; 
    function Sledge(main:Main) { 
     this.main = main; 
    } 
    function doSomething():void { 
    main.runSomeFunction(); 
    } 
} 

或者如果使用事件:

class Main { 
private var sledge:Sledge; 
    function Main() { 
     sledge = new Sledge(); 
     sledge.addEventListener("mainDoSomething", doSomething); 
    } 
    private function doSomething(e:Event):void { 
    // .... do stuff 
    } 
} 
class Sledge extends EventDispacter { 
    function Sledge() { 
    } 
    public function doSomething():void { 
    dispatchEvent(new Event("mainDoSomething")); 
    } 
}