调用函数 AS3

call function AS3

public function PubliCTest(_arg_1:MouseEvent):void {
    trace("PubliCTestSub" + this.tell.text() + " , " + this.hello.text());
    if (((this.istextValid()) && (this.istextsubValid()))){
        var url:URLLoader = new URLLoader();
        var req:URLRequest = new URLRequest("http://www.nasydbasda.com/tnewabsud.php");
        var vars:URLVariables = new URLVariables();
        vars.text1 = this.text1.text();
        vars.textsub = this.textsub.text();
        req.data = vars ;
        req.method = URLRequestMethod.POST;
        url.load(req);
        url.addEventListener(Event.COMPLETE, reqcompleted);

    }
    this.onSignInSub();
}

这是我的函数,我想从中提取一些功能来使用(另一个class中的另一个函数)。基本上我如何从另一个 class 调用它,同时保留当前 class.

的所有数据(函数)

Class 方法是绑定的,它们会坚持自己的 this 对象,除非你强行给它们传递另一个对象。也就是说,只要你能引用你的这个函数,你就可以在任何地方调用它。

解决方案 1singleton pattern。假设您 have/need 只有一个 class 的实例使用该方法,您将引用放入 class 静态变量并可以将其称为 YourClass.instance.yourMethod(参数);

方案二:静态引用。基本上是一样的,假设只有一个 class 实例,您可以绕过实例引用并声明一个 public 变量来代替方法引用。您可以将其称为 YourClass.MyMethod();

package
{
    public class YourClass
    {
        static public var MyMethod:Function;

        // Class constructor.
        public function YourClass()
        {
            MyMethod = yourMethod;
        }

        public function yourMethod():void
        {
            // ... whatever
        }
    }
}

方案三:传递引用。如果您因为有多个实例而不能使用单例(类似)解决方案,那么,请直接通过您的应用程序体系结构传递方法引用。您可能想阅读有关 dependency injection.

的内容