2009-08-18(Tue) 13:21
【AS3.0】SimpleButtonでボタンロールオーバーを設定

SimpleButtonクラスを使用することで簡単に「ロールオーバー」や「ロールダウン」のビジュアルを簡単に設定することができます。

  1. まずはSimpleButtonクラスをインポートします。
    import flash.display.SimpleButton;
  2. 次に「upState(通常時)」「overState(ロールオーバー)」「downStat(クリック)」それぞれのプロパティにDisplayObjectを設定します。
    今回はLoaderで読み込んだ外部画像でロールオーバーの設定をします。

    var btn:SimpleButton = new SimpleButton();
    //通常の状態
    btn.upState = mekaButton(_imgLoader);
    //ロールオーバー
    btn.overState = mekaButton(_imgLoader_o);
    //クリック時
    btn.hitTestState = btn.upState;
    
  3. mekaButtoではLoaderをaddChildしているだけですが、DisplayObjectを返す必要があります。

    private function mekaButton(load:Loader):Sprite {
    	var mySprite:Sprite = new Sprite();
    	mySprite.addChild(load);
    	return mySprite;
    }
    
  4. 最終的なコードです。

    package
    {
    import flash.display.SimpleButton;
    import flash.display.Sprite;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.display.Loader;   
    
    	public class Main extends Sprite
    	{
    		var _imgLoader:Loader = new Loader();
    		var _imgLoader_o:Loader = new Loader();
    
    		public function Main() {
    			_imgLoader.load(new URLRequest("img/btn01.jpg"));
    			_imgLoader_o.load(new URLRequest("img/btn01_o.jpg"));
    
    			var btn:SimpleButton = new SimpleButton();
    			//通常の状態
    			btn.upState = mekaButton(_imgLoader);
    			//ロールオーバー
    			btn.overState = mekaButton(_imgLoader_o);
    			//クリック時
    			btn.hitTestState = btn.upState;
    
    			addChild(btn);
    		}
    
    		private function mekaButton(load:Loader):Sprite {
    			var mySprite:Sprite = new Sprite();
    			mySprite.addChild(load);
    			return mySprite;
    		}
    	}
    }
    

とりあえずボタンの変化しかしませんが、動作の設定は通常通りイベントリスナーで設定します。


Comment Form
Name
E-mail
URL
Comment

TrackBack URL