2009-07-27 54 views
0
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" 
/> 
+0

今后请注明你的错误;它会帮助人们更快地诊断你的问题。 – 2009-07-27 16:00:57

回答

1

你的私有实例变量命名为instance,但你想分配给在吸气叫_instance变量。

更改此:

private static var instance:main =new main; 

这样:

private static var _instance:main; 
0

杰夫·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" 
/> 

这通常会给我更可靠的行为,我认为这将帮助这里。

0

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

private static var instance:main =new main; 

使用应将其更改为:

private static var _instance:main;