tanamonの稀に良く書く日記

KEEP CALM AND DRINK BEER

コンポーネントのデフォルト動作のキャンセル

イベントの中にはコンポーネントに対して特定の動作を行うものがあります。
たとえば、TextInputコンポーネントのテキスト入力などが該当します。


このデフォルト動作はEventクラスのpreventDefault()メソッドを呼び出すことでキャンセルすることができます。イベントがpreventDefault()でキャンセルできるかどうかは、cancelableプロパティを参照することで確認できます。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
			private function textInput(event:TextEvent):void {
				//'a'しか入力させない
				if ('a' != event.text) {
					event.preventDefault();
				}
			}
		]]>
	</mx:Script>
	
	<mx:Panel label="My Panel" id="panel" title="'a'を入力してください">
		<mx:TextInput id="text" textInput="textInput(event)"/>
	</mx:Panel>
	
</mx:Application>

上記の例では、'a'以外の文字が入力させるとpreventDefault()を呼び出し、入力を無効にしています。そのため、このTextInputコンポーネントには'a'の文字しか入力できなくなります。

実行結果