0

「user.as」クラスを持つアプリケーションがあり、製品の詳細を表示するポップアップがあります。このポップアップに「マーケット」プロパティを追加したいのですが、うまくいきません。コードは次のとおりです。

ユーザー名:

package com.brb.domain
{

[RemoteClass(alias="com.brb.user.userIBO")]
[Table(name="User")]
[Bindable]
public class User
{
    /**
     * Id of the user.
     */
    [Id(strategy="assigned")]
    public var UserID: Number;
    
    public var market: String;
    
    public var isAuthenticated: Boolean;
    
    public function User()
    {
        super();
    }
}

}

次にProduct.mxml、製品の詳細をポップアップで表示するクラスを作成します。

import com.brb.domain.Product;
import com.brb.domain.User;

...
[Bindable]
private var _product: Product;
[Bindable]
private var _currentUser: User;

public function set product( value: Product ): void
        {
this._product = value;
mySrc ="file:///C|/MultimediaSync/market_"+this.market.toString()+"/pictures/"+imageName;   
trace(this._currentUser.market.toString());
...

}

上記は返されます:

TypeError: エラー #1009: null オブジェクト参照のプロパティまたはメソッドにアクセスできません。

User.as class私の質問は、上記のような別の関数からプロパティにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

Flex はオブジェクト指向言語です。これが意味することは、(ほとんどの場合、「静的」と呼ばれるものを除いて) オブジェクトの特性にアクセスするには、オブジェクトのインスタンスが必要だということです。

この場合、'User' は User.as で定義されているオブジェクトであり、呼び出してそのインスタンスが必要です。

_currentUser = new User();

を参照する前に、MXML のどこかに_currentUser.market. このnew User()構文は、オブジェクトのインスタンス化またはインスタンスの作成と呼ばれます。その後、アクセス可能なプロパティ_currentUserを持つオブジェクトのインスタンスへの参照を保持します。_market

于 2012-07-23T13:00:27.040 に答える