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();
}
这是我的功能,我想从中使用一些功能(另一个类中的另一个功能)。基本上,我如何在保留当前类的所有数据(函数)的同时从另一个类中调用它。
答案 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的信息。