上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。




ActionScriptを使用して、無名関数を記載する方法をメモします。
わざわざ関数にまでする必要がないシンプルな関数を書きたい・・・事から無名関数について調べてみました。

Alertを使って無名関数を使わない方法と使う方法を例に挙げて比べてみます。


無名関数 Alertサンプルソース


下記ソースのclickButton1関数は無名関数を使わない場合の例です。
Alert.showメソッドにclickイベントに対するリスナー(clickButtonHandler)を追加しています。
Alertのボタン(はい、いいえ)押下時にリスナー(clickButtonHandler)が呼ばれます。

無名関数のサンプルでは、clickイベントに対するリスナー(clickButtonHandler)を追加せず無名関数として記載しています。
こうする事で、新たに関数を作成しなくてもよいのでちょこっとすっきりします。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="196" height="200">

<mx:Script>
<![CDATA[

import mx.controls.Alert;
import mx.events.CloseEvent;

/**
* ※無名関数を使わない
* 「ここをクリック」ボタン押下時
*/
private function clickButton1(event:Event):void {
Alert.show("あなたは男性ですか?", "性別検査", mx.controls.Alert.YES | mx.controls.Alert.NO, this, clickButtonHandler);
}
/**
* ※無名関数を使わない
* Alertボタンの「はい」「いいえ」押下時
*/
private function clickButtonHandler(event:CloseEvent):void {
if (event.detail==Alert.YES) {
status1.text="「はい」を選択しました";
} else {
status1.text="「いいえ」を選択しました";
}
}
/**
* ※無名関数を使う
* 「ここをクリック」ボタン押下時
* Alertボタンの「はい」「いいえ」押下時
*/
private function clickButton2(event:Event):void {
Alert.show("あなたは男性ですか?", "性別検査", mx.controls.Alert.YES | mx.controls.Alert.NO, this, function(event:CloseEvent):void {
if (event.detail==Alert.YES) {
status2.text="「はい」を選択しました";
} else {
status2.text="「いいえ」を選択しました";
}
});
}
]]>
</mx:Script>

<mx:Button label="ここをクリック" click="clickButton1(event);"/>
<mx:Label id="status1" fontWeight="bold"/>
<mx:Spacer height="10" />
<mx:Button label="ここをクリック(無名関数)" click="clickButton2(event);"/>
<mx:Label id="status2" fontWeight="bold"/>
</mx:Application>



無名関数 Alert動作サンプル



少しでも参考になれば応援お願いします。












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。