[Flex][AIR] ActionScriptで静的初期化子

| コメント(2) | トラックバック(0)
あるクラスにアクセスした時に最初の1回だけstaticな変数などの初期化処理を行いたい。staticじゃないやつはコンストラクタで出来るのに・・・


静的初期化子を使えばいいそうです。具体的には、
 staticな変数の初期化(1行でかけない場合)
 styleの初期化
があるみたい。もっとあると思うけどすぐ出てこない。


styleの初期化っていうのは例えば、スタイルシートには
.hogeって書くクラスセレクタと
Hogeってかくタイプセレクタがあって、

このタイプセレクタの初期化ってのがクラスに最初にアクセスが起ったタイミングでやりたいので、
静的初期化子を使えということ。

スタイルについては後でまとめます。今回は静的初期化子の話。


javaとかだと
static {

}
とかで出来るんだけど(実際やってるの見たことないけどww)


ActionScriptではそういうのがないから、




とかってやればいいらしい。

ちなみに、constな定数は、宣言時じゃないと初期化できないみたい。

初期化に複数行かかる場合は、同じやり方でその処理メソッドにして宣言時にその戻り値を入れるようにすればok

トラックバック(0)

トラックバックURL: http://blog.isocchi.com/MovableType/mt-tb.cgi/295

コメント(2)

> javaとかだと
> static {
>
> }
> とかで出来るんだけど(実際やってるの見たことないけどww)


これ基本情報技術者試験の午後問題で見たことあるよ!(笑)

H18春試験の午後問題の問12の設問(a)

import java.util.Random;
public class Card {
   public static final int SPADES = 0;
   public static final int HEARTS = 1;
   public static final int DIAMONDS = 2;
   public static final int CLUBS = 3;
   private static final Random rand = new Random();
   private static final Card[] cards = new Card[13 * 4];
   private final int suit;
   private final int rank;
   
   +--------------------+
   |         (a)        | /* ←ここに入るのが static { */
   +--------------------+
      for (int i = SPADES; i <= CLUBS; i++) {
         for (int j = 1; j <= 13; j++) {
            cards[ (b) ] = new Card(i, j);
         }
      }
   }
   private Card(int suit, int rank) {
      this.suit = suit;
      this.rank = rank;
   }

http://www.jitec.jp/1_04hanni_sukiru/mondai_kaitou_2006h18_1/2006h18h_fe_pm_qs.pdf

>TBVector
TBVectorってなんだよwww
最初ダレかわかんなかったじゃんかwww


sjc-pでも出るよ。

でもね、試験でしか見たことないんだww

コメントする

このブログ記事について

このページは、isocchiが2008年10月13日 19:05に書いたブログ記事です。

ひとつ前のブログ記事は「[Topcoder] SRM 421 DIV 2」です。

次のブログ記事は「[Security] WEP終了のお知らせ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.0