トップ > Action Script 3.0 > テキストフィールドをボタン処理させる時に気をつける「mouseEnabled」

テキストフィールドをボタン処理させる時に気をつける「mouseEnabled」

個人的に良く記述するのが、空のムービークリップにテキストフィールドを作成しボタン処理をさせるというスクリプト。

AS2では当たり前のように書いていたのだが、AS3で早速大きな壁にぶつかってしまう…(汗

基本的には実現ができるのだけども、何故かマウスカーソルがきちんと変わらない。ボタンにオーバーさせても矢印カーソルのままで、リンクを示す指のカーソルに切り替わらない…。

あれこれと調べた結果、「InteractiveObject」クラスの「mouseEnabled」というプロパティが原因のようだ。

InteractiveObject クラスは、ユーザーが操作できるすべての表示オブジェクトの抽象基本クラスとのこと。

ふーむ。AS3のクラスは、まだイマイチ馴染めないな…。

で、結局のところ、このプロパティで調整を加えると上手く表示できました。

▼サンプル
クリックするとテキストが変わります。

このサイトをご覧頂くには最新の Flash Player Plug-in をお使いのブラウザにインストールする必要があります。
Flash Player Plug-in はこちらからダウンロードする事が出来ます(無料)。

ソースは下記。


package {
	//クラス読み込み
	import flash.display.StageScaleMode;
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import flash.events.MouseEvent;
	
	public class textBtn extends Sprite {
		
		private var SP:Sprite;
		private var TXT:TextField;
		
		//コンストラクタ
		public function textBtn() {
			
			//ステージサイズ設定
			stage.scaleMode = StageScaleMode.NO_SCALE;
			
			//スプライト生成
			SP = new Sprite();
			with (SP) {
				x = 20;
				y = 40;
				buttonMode = true; //スプライトをボタンとして動作させる
				addEventListener(MouseEvent.CLICK, btnClick);
			}
			
			//テキストフィールド作成
			TXT = new TextField();
			with (TXT) {
				autoSize = TextFieldAutoSize.LEFT;
				text = "テキスト";
				mouseEnabled = false;	//マウスイベントを受け取らなくする
			}
			
			addChild(SP);
			SP.addChild(TXT);
		}
		
		//ボタン処理
		public function btnClick(e:MouseEvent):void {
			TXT.appendText("-クリック");
		}
	}
}

この記事をブックマークしておく

コメント:0

コメント投稿

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

この情報を記憶する

トップ > Action Script 3.0 > テキストフィールドをボタン処理させる時に気をつける「mouseEnabled」

記事検索
カテゴリ
RSSフィード

このページの先頭へ戻る