asに限らず、いろいろなプログラムで使われる関数。
正式には関数クロージャと呼ばれるみたい。
- 関数とは「何らかの作業を実行する個別の命令セット」。
- クラスやオブジェクトから独立しているもののことを言うらしい。
- 関数は「function」キーワードで定義する。
- 呼び出しにはカッコ演算子を使う。
- 関数を作成するには、「メソッド内」「パッケージ定義内」
「パッケージ定義外」「別の関数内に直接」に記述する。 - 直接クラス本体内にあると、それは関数ではなくインスタンスメソッドになる。
なんとなく理解できそう・・・。
関数の記述方法は以下の通り。
[as3]
function identifier(param1 , param2 , param3 … paramn){
//プログラムコード
}
[/as3]
※identifierは関数の名称。
関数の呼び出し方法は以下の通り。
[as3]
theFunction(value1 , value2 , value3 … valuen);
[/as3]
※theFunctionは関数の名称。
パッケージレベルの関数
パッケージで関数を使う場合は、関数定義をパッケージ本体内に直接記述する。
パッケージ内からのみ使える関数
[as3]
package packageName(){
internal function identifier(){
//関数のプログラム
//※アクセス制御指定子internalをつける。
}
}
[/as3]
プログラム全体から使える関数
[as3]
package packageName(){
public function identifier(){
//関数のプログラム
//※アクセス制御指定子publicをつける。
}
}
[/as3]
アクセス制御指定子をつけないと自動的にinternalになり、
パッケージ内からのみ使えるようになる。
グローバル関数
名前のないパッケージのパッケージレベルで定義した関数は、
「import」ステートメントを使わなくてもプログラム全体から
グローバルに参照することができることから、
グローバル関数と呼ばれる。
パッケージ名の無い関数例
[as3]
package{
import flash.system.*;
public function isIteru(){
return Capabilities.os = "iteru"
//OSがiteruか確認する。そんなのないけど。
}
}
[/as3]
パッケージ名の無い関数使用例
[as3]
package setup{
public class WelCome{
public function WelCome(){
//isIteruの使用
if( isIteru() ){
//iteru特有のプログラムを実行する
}
}
}
}
[/as3]
それとも、isIteruをインポートしなくてもいいってこと・・・。かな。
Flashランタイムにはそれぞれ多くのパッケージレベルの関数や
グローバル関数があらかじめ組み込まれているらしい。
もっとも使うであろうグローバル関数は「trace」。
traceは特にインポートしてなくても使えてるので、
そういった関数を、package名無しで作れば、自作できるってことかと。
今日はここまで。
- 詳説 ActionScript 3.0
-
- 発売元: オライリージャパン
- 価格: ¥ 6,090
- 発売日: 2008/11/22
- 売上ランキング: 69005
- おすすめ度