2009-07-27 36 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

あなたが得るエラーを含めてください。人々があなたの問題をより迅速に診断するのに役立ちます。 –

答えて

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; 
関連する問題