Comments初めまして!今年の春入社したぐっちーです。アライトに入社して初めてプログラミングに触れ、業務の中で日々勉強中です。難しかったところや、つまったところを記事にしていこうと思っていますので、よろしくお願い致します。Systemを使用する方法についてご紹介いたしました。今回は、ActionScriptのstaticについて説明していきたいと思います。するときに修飾子として使うものです。行うとクラス自体に変数と関数を持たせることができます。staticで宣言、定義されたものを、クラス関数、クラス変数と呼びます。非staticは、インスタンスに関数、変数を持たせることができます。これらをインスタンス変数、インスタンス関数と呼びます。staticは、ほかのクラスで呼ぶ際には、クラス名.クラス変数(関数)名で呼ぶことができます。それに対して非staticのものを他クラスで呼ぶ際には、インスタンスを生成する必要があります。それでは、ActionScriptでのstaticの定義方法について説明します。test:String;変数はこのようにアクセス指定子の後にstaticをつけ、宣言します。testFunction():void{}関数でも、アクセス指定子の後にstaticをつけ、定義します。実際にstaticを利用したプログラムをかいてみましょう。例として、ある学校のA学年とB学年、それぞれの学年の総合人数を出す処理を作ります。A学年クラス、B学年クラス、結果表示クラスを作りたいと思います。前提条件は下記となります。A学年クラスのstatic関数の中で、非static関数を呼ぶ。B学年クラスのstatic関数の中で、static関数を呼ぶ。BSchoolYear.synthesizeB();trace(outputB);}}処理は完成しました。次にパブリッシュをしてみるとA学年のコンパイルエラーがでてしまいます。メソッドを定義したはずが、未定義扱いとなってしまい、コンパイルエラーとなってしまうようです。今回のエラーは、staticの中で非static関数を呼んだのが原因です。理由としては、非staticの定義がstaticより遅いことです。staticは冒頭で説明した通り、クラスのメンバなので、クラスが認識された時点で定義されます。インスタンスメンバの非staticはnewされるまで、使うこともできません、よって関数は未定義となり、コンパイルエラーとなります。そのため、学年Aのaddition関数にstaticをつけることで、コンパイルエラーを取り除くことが出来ます。staticは、一見便利そうなのですが、どこからでも呼び出せてしまうので共通処理にしかむいていないです。それにstaticを使うと、最初にたくさん容量をとるので、あまり多用はおすすめできません。私も、このエラーが出てつまづいたので、記事にしたのですが、使用用途がなかなか難しそうです。最後までご覧頂きありがとうございました。弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。ご興味ある方は、お気軽にお問い合わせ下さい。コメントをキャンセルメールアドレスが公開されることはありません。BlogFeathersFeathersHTMLJavaScript。