0

と の 2 つのクラスがadminglobal.asありcompany.asます。

adminglobal.asから内部に存在するコンストラクターにアクセスする必要がありますcompany.as。また、アクセスするときは、コンストラクター内にある変数も使用する必要がありcompany.asます。

基本的に必要なのは、コンストラクターをadminglobal.ascompany.as から呼び出し、コンストラクター内にある変数を使用することですcompany.as。どうやってするの?

4

3 に答える 3

1

AdminGlobalという名前のファイルにクラスがあり、ファイルadminglobal.asにクラスCompanyがあるとしますcompany.as。あるクラスのコンストラクターに別のクラス内でアクセスするには、そのクラスをパブリックにしてから、そのクラスが異なるパッケージに配置されている場合は、そのクラスをインポートするだけで済みます。それらが同じパッケージにある場合、クラスを暗黙的にインポートする必要はありません。

あるクラスの変数とメソッドを別のクラスで使用するには、それらの変数とメソッドがpublicとしてマークされていることを確認するだけで済みます。ActionScript3 のクラスに関する Kirupaのこのチュートリアルをご覧になることをお勧めします。

たとえば、adminglobal.asという名前のフォルダー内にある場合admins、ルートは次のようになります。your_project_folder/src/admins/adminglobal.as

クラスの内容例AdminGlobal

package admins
{
  public class AdminGlobal
  {
    //accesible variable
    public var name:String;

    //constructor
    public function AdminGlobal()
    {
      //do init stuff here
      name= "anon";
    }

  }

}

また、プロジェクトの src フォルダー (デフォルト パッケージ) のファイル company.as にクラス Company がある場合、ルートは次のようになります。your_project_folder/src/company.as

Companyclassにアクセスする classのコンテンツの例AdminGlobal:

package
{
  //import public class from another package
  import admins.AdminGlobal;

  public class Company
  {

    //constructor
    public function Company()
    {
      //call constructor of public class
      var ag:AdminGlobal = new AdminGlobal();

      //access public variables
      trace(ag.name);
    }

  }

}
于 2012-07-27T14:25:08.007 に答える
0

これを間違った方法で考えているだけだと思います。コンストラクターの引数/パラメーターを使用できるため、 AdminGlobal は次のように宣言できます

public AdminGlobal(companyId:Number,companyName:String);

その後、会社で呼び出すことができます

new AdminGlobal(this.companyId,this.companyName);

AdminGlobal のコンストラクターでこれらの変数を使用して必要なことを行います。

あるいは

AdminGlobal(company:Company);

その後、会社で

new AdminGlobal(this);

また、AdminGlobal から Company のすべてのパブリック メンバーを処理できます。

于 2012-07-28T19:23:20.800 に答える
0

「public static var」を使用して、他のクラスから変数に到達します。

例えば;

package com
{
    public class DataVO
    {
        public static var version:String = "1";
    }
}
于 2012-07-27T13:13:41.007 に答える