- 2008-07-23 (水)
- Action Script 3.0
個人的に良く記述するのが、空のムービークリップにテキストフィールドを作成しボタン処理をさせるというスクリプト。
AS2では当たり前のように書いていたのだが、AS3で早速大きな壁にぶつかってしまう…(汗
基本的には実現ができるのだけども、何故かマウスカーソルがきちんと変わらない。ボタンにオーバーさせても矢印カーソルのままで、リンクを示す指のカーソルに切り替わらない…。
あれこれと調べた結果、「InteractiveObject」クラスの「mouseEnabled」というプロパティが原因のようだ。
InteractiveObject クラスは、ユーザーが操作できるすべての表示オブジェクトの抽象基本クラスとのこと。
ふーむ。AS3のクラスは、まだイマイチ馴染めないな…。
で、結局のところ、このプロパティで調整を加えると上手く表示できました。
▼サンプル
クリックするとテキストが変わります。
このサイトをご覧頂くには最新の Flash Player Plug-in をお使いのブラウザにインストールする必要があります。
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
トラックバック:0
- この記事のトラックバックURL
- http://god.xsrv.jp/__mt/mt-tb.cgi/1303
- トラックバックを受ける記事
- テキストフィールドをボタン処理させる時に気をつける「mouseEnabled」 from 1ka2ka.com Flash & Action Script