呼叫功能AS3

时间:2019-02-01 06:13:22

标签: actionscript-3

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();
}

这是我的功能,我想从中使用一些功能(另一个类中的另一个功能)。基本上,我如何在保留当前类的所有数据(函数)的同时从另一个类中调用它。

1 个答案:

答案 0 :(得分:1)

类方法是绑定的,除非您强行将它们传递给另一个方法,否则它们将坚持自己的 this 对象。这意味着,只要您可以引用您的此功能,就可以从任何地方调用它。

解决方案1 ​​singleton pattern。假设您只/需要使用该方法的类的一个实例,则将对类的静态变量的引用放入该变量,并可以将其称为 YourClass.instance.yourMethod(args);

解决方案2 :静态参考。基本上,在相同的假设下,只有一个类实例,您可以绕过实例引用并声明一个公共变量来代替方法引用。您可以将其称为 YourClass.MyMethod();

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

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

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

解决方案3 :通过参考。如果因为有多个实例而无法使用单例(类)解决方案,那么直接将方法引用传递给您的应用程序体系结构。您可能想阅读有关dependency injection的信息。