从类中调用函数

时间:2009-07-27 15:33:29

标签: flex

package asas
{           
  public class main extends EventDispatcher
  {
    private static  var instance:main =new main;

    // This method returns the instance of the class.
    public static function get instance() : main {
      if(_instance == null){
        _instance = new main();            
      }
      return _instance;
    }

    public function doCheck():void {
    }

我有这个类和一个MXML文件......我将如何在按钮中调用doCheck函数。当我这样打电话时,它会给我一个错误。

<mx:Button
   styleName="LoginButton"
   id="loginButton" 
   click="main.instance.doCheck();" 
   x="160" 
   y="261"
 />

3 个答案:

答案 0 :(得分:1)

您的私有实例变量名为instance,但您尝试在getter中分配给名为_instance的变量。

改变这个:

private static var instance:main =new main;

到此:

private static var _instance:main;

答案 1 :(得分:0)

Jeff L正确实施。 _instance属性应始终未初始化或设置为null。那就是说,这不是问题所在。

在尝试让MXML从该表示法中的其他对象的属性读取方法时,我的结果很差。我建议替换它:

<mx:Button
   styleName="LoginButton"
   id="loginButton" 
   click="main.instance.doCheck();" 
   x="160" 
   y="261"
/>

使用括号:

<mx:Button
   styleName="LoginButton"
   id="loginButton" 
   click="{ main.instance.doCheck(); }"
   x="160" 
   y="261"
/>

这通常会给我更可靠的行为,我认为这也会有所帮助。

答案 2 :(得分:0)

这行代码没有意义,因为在你的代码中你使用了未声明的变量。

private static  var instance:main =new main;

使用应将其更改为:

private static var _instance:main;