forked from: Function.applyの使い方
こういうことでいいのかな
こんな感じです.こういうとき wonderfl 便利>< by flair4.jp
/**
* Copyright kawakita ( http://wonderfl.net/user/kawakita )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/huoP
*/
// forked from ton's Function.applyの使い方
// こういうことでいいのかな
// こんな感じです.こういうとき wonderfl 便利>< by flair4.jp
package {
import flash.display.*;
import flash.text.TextField;
public class FlashTest extends Sprite {
public function FlashTest() {
var txt:TextField = new TextField();
txt.autoSize = "left";
addChild(txt);
/////////////////////////////
// 第1引数の使い方
// Function 内の this がどこを指すかを指定できます.
/////////////////////////////
// apply されちゃう人たち.
var obj1:Object = {
say : "俺obj1!",
func : function():void{
txt.appendText("obj1のfuncへようこそ\n");
}
}
var obj2:Object = {
say : "俺obj2!",
func : function():void{
txt.appendText("obj2のfuncへようこそ\n");
}
}
var obj3:Object = {
say : "俺obj3!",
func : function():void{
txt.appendText("obj3のfuncへようこそ\n");
}
}
var sprite:Sprite = new Sprite();
var mc:MovieClip = new MovieClip();
// obj1 2 3 の func を実行.
// obj1 の func を実行.
obj1.func();
// obj2 の func を実行.
obj2.func();
// obj3 の func を実行.
obj3.func();
txt.appendText("------------------------\n");
// -----------------------
// 区別のため以後この func は 俺func と呼びます.
var func:Function = function():void{
// apply の第一引数で this の読み先が変わる.
txt.appendText(this.say+"\n");
this.func();
txt.appendText("------------------------\n");
}
// 俺func を実行. その際, this は obj1 を参照させる.
func.apply(obj1);
// 俺func を実行. その際, this は obj2 を参照させる.
func.apply(obj2);
// 俺func を実行. その際, this は obj3 を参照させる.
func.apply(obj3);
// -----------------------
// なにも指定しないと・・・
func();
}
}
}