バインドメソッド
インスタンスから取得したメソッド(これをバインドメソッドと呼びます。)は、取得元のインスタンスと関連づけられています。バインドメソッド内の「this」は取得元のインスタンスになります。
Kitten.as:
package { public class Kitten { public function Kitten( name:String ) { this.name = name; } private var name:String; // 内部でthis参照を使う。 public function getName():String { return this.name; } } }
メイン(sample.as):
// メイン public function main():void { var k:Kitten = new Kitten("mii"); // インスタンスから関数を取得。(バインドメソッド) var getName:Function = k.getName; // バインドメソッドを実行。メソッド中のthisは、「メソッドの取得元のインスタンス」になる。 stdout.text += getName(); }
MXML:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete = "main()" > <mx:TextArea id="stdout" width="200" height="200" /> <mx:Script source="./main.as"/> </mx:Application>
イベントリスナーで使うそうです。Javaみたいに「HogeHogeListener」インターフェイスを書いて、実装して、とかしなくてすみそう。