| パッケージ | トップレベル |
| public dynamic class Function | |
| 継承 | Function Object |
クラスのメソッドは、Function オブジェクトとは少し異なります。メソッドは通常の関数オブジェクトとは異なり、関連のクラスオブジェクトと緊密にリンクされています。このため、メソッドまたはプロパティは、同一クラスのすべてのインスタンスで共有される定義を持ちます。メソッドをインスタンスから抽出して、"バインド" メソッドとして扱うことができます。元のインスタンスとのリンクは維持されます。バインドメソッドについては、this キーワードで、メソッドの実装元オブジェクトを指します。関数については、this で、関数が呼び出されたときの関連オブジェクトを指します。
関連項目
| メソッド | 定義 | ||
|---|---|---|---|
|
ActionScript が呼び出す関数内で使用される
thisObject の値を指定します。 | Function | ||
|
Function オブジェクトが表す関数を呼び出します。
| Function | ||
![]() |
指定されたプロパティがオブジェクトに定義されているかどうかを示します。
| Object | |
![]() |
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
| Object | |
![]() |
指定されたプロパティが存在し、列挙できるかどうかを示します。
| Object | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
| apply | () | メソッド |
AS3 function apply(thisObject:Object, argArray:Array = null):void
ActionScript が呼び出す関数内で使用される thisObject の値を指定します。このメソッドは、呼び出される関数に渡されるパラメータも指定します。apply() は Function クラスのメソッドなので、ActionScript 内のすべての Function オブジェクトのメソッドとしても使用できます。
パラメータは、カンマ区切りリストとしてパラメータを指定する Function.call() とは異なり、Array オブジェクトとして指定します。これは、スクリプトが実際に実行されるまで、渡されるパラメータ数が不明である場合にも便利です。
呼び出された関数が戻り値として指定する値を返します。
パラメータthisObject:Object — 関数の適用先のオブジェクトです。
|
|
argArray:Array (default = null) — エレメントをパラメータとして関数に渡す配列です。
|
関連項目
| call | () | メソッド |
AS3 function call(thisObject:Object, parameter1:String = null):voidFunction オブジェクトが表す関数を呼び出します。ActionScript のすべての関数は Function オブジェクトによって表されます。したがって、すべての関数はこのメソッドをサポートしています。
ほとんどの場合、このメソッドの代わりに関数呼び出し演算子 (()) を使用できます。関数呼び出し演算子を使うと、コードが簡潔になり読みやすくなります。このメソッドは、主に関数呼び出しの thisObject パラメータを明示的に制御する必要がある場合に役立ちます。通常、関数をオブジェクトのメソッドとして、関数の本体内で呼び出すと、次のように thisObject が myObject に設定されます。
myObject.myMethod(1, 2, 3);
thisObject が他の異なる場所をポイントするように設定する場合もあります。たとえば、オブジェクトのメソッドとして呼び出す関数が、実際には、そのオブジェクトのメソッドとして格納されていない場合などです。
myObject.myMethod.call(myOtherObject, 1, 2, 3);
関数をオブジェクトのメソッドとして呼び出さずに通常の関数として呼び出すには、thisObject パラメータに値 null を渡します。たとえば、次の 2 つの関数呼び出しは同じです。
Math.sin(Math.PI / 4) Math.sin.call(null, Math.PI / 4)
呼び出された関数が戻り値として指定する値を返します。
パラメータthisObject:Object — 関数の本体内で thisObject の値を示すオブジェクトです。
|
|
parameter1:String (default = null) — 関数に渡すパラメータです。指定できるパラメータの数は 0 個以上です。
|
関連項目
FunctionExample, SimpleCollection, EventBroadcaster, and EventListener classes to show various uses of functions in ActionScript. This is accomplished with the following steps: FunctionExample creates a local variable named simpleColl, which is populated with an array of integers ranging from 1 to 8. simpleColl object is printed using trace().listener, is added to simpleColl.insert() and remove() functions are called, the listener responds to their events.greaterThanFourColl.greaterThanFourColl object is assigned the result of simpleColl.select() with the argument 4 and an anonymous function. The SimpleCollection object's select method is an internal iterator that uses the anonymous function parameter as a block. package { import flash.display.Sprite;
public class FunctionExample extends Sprite { public function FunctionExample() { var simpleColl:SimpleCollection; simpleColl = new SimpleCollection(0, 1, 2, 3, 4, 5, 6, 7, 8); trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 8
var listener:EventListener = new EventListener(); simpleColl.addListener(listener); simpleColl.insert(9); // itemInsertedHandler: 9 simpleColl.remove(8); // itemRemovedHandler: 8 trace(simpleColl); // 0, 1, 2, 3, 4, 5, 6, 7, 9
var greaterThanFourColl:SimpleCollection; greaterThanFourColl = simpleColl.select(4, function(item:int, value:int){ return item > value }); trace(greaterThanFourColl); // 5, 6, 7, 9 } } }
import flash.display.Sprite;
class EventBroadcaster { private var listeners:Array;
public function EventBroadcaster() { listeners = new Array(); }
public function addListener(obj:Object):void { removeListener(obj); listeners.push(obj); }
public function removeListener(obj:Object):void { for(var i:uint = 0; i < listeners.length; i++) { if(listeners[i] == obj) { listeners.splice(i, 1); } } }
public function broadcastEvent(evnt:String, ...args):void { for(var i:uint = 0; i < listeners.length; i++) { listeners[i][evnt].apply(listeners[i], args); } } }
class SimpleCollection extends EventBroadcaster { private var arr:Array; public function SimpleCollection(... args) { arr = (args.length == 1 && !isNaN(args[0])) ? new Array(args[0]) : args; }
public function insert(obj:Object):void { remove(obj); arr.push(obj); broadcastEvent("itemInsertedHandler", obj); }
public function remove(obj:Object):void { for(var i:uint = 0; i < arr.length; i++) { if(arr[i] == obj) { var obj:Object = arr.splice(i, 1)[0]; broadcastEvent("itemRemovedHandler", obj); } } }
public function select(val:int, fn:Function):SimpleCollection { var col:SimpleCollection = new SimpleCollection(); for(var i:uint = 0; i < arr.length; i++) { if(fn.call(this, arr[i], val)) { col.insert(arr[i]); } } return col; }
public function toString():String { var str:String = new String(); for(var i:uint = 0; i < arr.length - 1; i++) { str += arr[i] + ", "; } str += arr[arr.length - 1]; return str; } }
class EventListener { public function EventListener() { }
public function itemInsertedHandler(obj:Object):void { trace("itemInsertedHandler: " + obj); }
public function itemRemovedHandler(obj:Object):void { trace("itemRemovedHandler: " + obj); } }