<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SimpleButton &#8211; Mach3.laBlog</title>
	<atom:link href="https://blog.mach3.jp/tag/simplebutton/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.mach3.jp</link>
	<description></description>
	<lastBuildDate>Mon, 24 May 2010 00:20:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>AS3実験室: SimpleButtonクラスをトグル出来るように拡張した「SimpleToggleButton」</title>
		<link>https://blog.mach3.jp/2010/05/24/as3-simpletogglebutton.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Mon, 24 May 2010 00:20:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[SimpleButton]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/05/24/as3%e5%ae%9f%e9%a8%93%e5%ae%a4-simplebutton%e3%82%af%e3%83%a9%e3%82%b9%e3%82%92%e3%83%88%e3%82%b0%e3%83%ab%e5%87%ba%e6%9d%a5%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e6%8b%a1%e5%bc%b5%e3%81%97%e3%81%9f.html</guid>

					<description><![CDATA[AS3実験室: 画像を読み込んでボタンにする～SimpleButtonの巻 AS3実験室: 画像を読み込んでボタンにするに続いて、 もういい加減にしなさいというテーマですが、書いてみちゃいました。 今回は、SimpleB [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a href="/2010/05/as3-simplebutton-with-bitmap.html">AS3実験室: 画像を読み込んでボタンにする～SimpleButtonの巻</a><br />
<a href="/2010/05/as3-bitmapbutton.html">AS3実験室: 画像を読み込んでボタンにする</a>に続いて、<br />
もういい加減にしなさいというテーマですが、書いてみちゃいました。<br />
今回は、SimpleButtonクラスを拡張してselectedプロパティを追加してトグル出来るようにしました。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh3.ggpht.com/_JJkNs5Ixl70/S_lHhjin2OI/AAAAAAAAA6c/LrhVY9HeUuY/s800/201005232315.png" alt="SimpleToggleButton"/></figure>



<p></p>



<span id="more-33"></span>



<p><a href="https://docs.google.com/uc?id=0B7k6jIWYcmkLYmVmMzBhNjktNjcxYi00MTg3LWExNDUtZjY0NGRjNjVmMDk3&amp;export=download&amp;hl=ja">Download : simpletogglebutton.as3.zip</a></p>



<p>大した行数はないので貼りつけておきます。</p>


<pre class="wp-block-code"><span><code class="hljs language-php">package jp.mach3.ui
{
    import flash.display.DisplayObject;
    import flash.display.SimpleButton;

    <span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">SimpleToggleButton</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">SimpleButton</span>
    </span>{
        <span class="hljs-keyword">private</span> <span class="hljs-keyword">var</span> _upState:DisplayObject;
        <span class="hljs-keyword">private</span> <span class="hljs-keyword">var</span> _selectedState:DisplayObject;
        <span class="hljs-keyword">private</span> <span class="hljs-keyword">var</span> _selected:Boolean = <span class="hljs-keyword">false</span>;

        <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">SimpleToggleButton</span><span class="hljs-params">( upState:DisplayObject = null,
        overState:DisplayObject = null, downState:DisplayObject = null,
        hitTestState:DisplayObject = null, selectedState:DisplayObject = null )</span>
        </span>{
            super(upState, overState, downState, hitTestState);
            _selectedState = selectedState;
            render();
        }

        <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">render</span><span class="hljs-params">(n:* = null)</span>:<span class="hljs-title">void</span>
        </span>{
            _upState = upState;
        }

        <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">set</span> <span class="hljs-title">selected</span><span class="hljs-params">( selected:Boolean )</span>:<span class="hljs-title">void</span>
        </span>{
            <span class="hljs-keyword">if</span> (selected) {
                upState = _selectedState;
                mouseEnabled = <span class="hljs-keyword">false</span>;
            } <span class="hljs-keyword">else</span> {
                upState = _upState;
                mouseEnabled = <span class="hljs-keyword">true</span>;
            }
            _selected = selected;
        }

        <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">get</span> <span class="hljs-title">selected</span><span class="hljs-params">()</span>:<span class="hljs-title">Boolean</span>
        </span>{
            <span class="hljs-keyword">return</span> _selected;
        }

        <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">set</span> <span class="hljs-title">selectedState</span><span class="hljs-params">( selectedState:DisplayObject )</span>:<span class="hljs-title">void</span>
        </span>{
            _selectedState = selectedState;
        }

        <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">get</span> <span class="hljs-title">selectedState</span><span class="hljs-params">()</span>:<span class="hljs-title">DisplayObject</span>
        </span>{
            <span class="hljs-keyword">return</span> _selectedState;
        }

    }
}
</code></span></pre>


<h2 class="wp-block-heading">SimpleButtonと違う点</h2>



<p><a href="http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/display/SimpleButton.html">SimpleButton &#8211; ActionScript 3.0 コンポーネントリファレンスガイド</a><br />
基本的な使い方はSimpleButtonと同じですが、<br />
SimpleToggleButtonクラスには以下の二つのメンバが追加されています。</p>



<dl>
<dt>selectedState : DisplayObject</dt>
<dd>選択状態を表示する為のDisplayObjectを、upStateやoverState等と同様に設定します。</dd>
<dt>selected : Boolean</dt>
<dd>トグルに使用するBool値。trueにする事でselectedStateが表示され、マウスイベントが効かなくなります。falseにすると元に戻ります。</dd>
<dt>render()</dt>
<dd>コンストラクタではなく、プロパティアクセスでDisplayObjectを設定した場合に、これを呼ぶ必要があります。苦し紛れのメソッド。後述。</dd>
</dl>



<p>また、コンストラクタの引数が一つ追加されています。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">SimpleToggleButton( upState:DisplayObject = <span class="hljs-literal">null</span>, <span class="hljs-attr">overState</span>:DisplayObject = <span class="hljs-literal">null</span>, <span class="hljs-attr">downState</span>:DisplayObject = <span class="hljs-literal">null</span>, <span class="hljs-attr">hitTestState</span>:DisplayObject = <span class="hljs-literal">null</span>, <span class="hljs-attr">selectedState</span>:DisplayObject = <span class="hljs-literal">null</span> )
</code></span></pre>


<dl>
<dt>selectedState</dt>
<dd>選択状態のDisplayObjectを格納します。</dd>
</dl>



<h2 class="wp-block-heading">簡単な使い方(1)</h2>



<p>myUpState、myOverState、myDownState、myHitTestState、mySelectedStateには<br />
それぞれの状態に使用するDisplayObjectが格納されていると想定します。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">var</span> myButton:SimpleToggleButton = <span class="hljs-keyword">new</span> SimpleToggleButton();

myButton.upState = myUpState;
myButton.overState = myOverState
myButton.downState = myDownState;
myButton.hitTestState = myHitTestState;
myButton.selectedState = mySelectedState;
myButton.render(); <span class="hljs-comment">// Don't miss it !</span>

addChild( myButton );
</code></span></pre>


<p>選択状態にトグルする場合は、プロパティアクセスでselectedをtrueにします。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">myButton.selected = <span class="hljs-literal">true</span>;
</code></span></pre>


<h2 class="wp-block-heading">簡単な使い方(2)</h2>



<p>SimpleButton同様、プロパティアクセスでDisplayObjectを設定する事も出来ますが、<br />
その場合、格納し終えた後にrender()を呼ぶ必要があります。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">var</span> myButton:SimpleToggleButton = <span class="hljs-keyword">new</span> SimpleToggleButton();

myButton.upState = myUpState;
myButton.overState = myOverState
myButton.downState = myDownState;
myButton.hitTestState = myHitTestState;
myButton.selectedState = mySelectedState;
myButton.render(); <span class="hljs-comment">// Don't miss it !</span>

addChild( myButton );
</code></span></pre>


<p>render()は、upStateをプライベートメンバの_upStateにコピーするだけのメソッドです。<br />
このクラスは、upStateをselectedStateで上書きする事でトグルを実現しているので<br />
この処理がないとselectedが再びtrueにされた場合に表示するためのDisplayObjectが見つからなくなります。</p>



<p>本来であれば、upStateのセッターで記述すべきものなのですが…<br />
元祖SimpleButtonのupStateが内部でどのように処理されているかがわからなかった為、<br />
このようなスマートではない方法を取ることになりました。</p>



<p>もっと良い方法はないだろうか…<br />
（え、まだつづくの！？）</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AS3実験室: 画像を読み込んでボタンにする～SimpleButtonの巻</title>
		<link>https://blog.mach3.jp/2010/05/03/as3-simplebutton-with-bitmap.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Mon, 03 May 2010 21:56:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Bitmap]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[SimpleButton]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/05/03/as3%e5%ae%9f%e9%a8%93%e5%ae%a4-%e7%94%bb%e5%83%8f%e3%82%92%e8%aa%ad%e3%81%bf%e8%be%bc%e3%82%93%e3%81%a7%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ab%e3%81%99%e3%82%8b%ef%bd%9esimplebutton%e3%81%ae%e5%b7%bb.html</guid>

					<description><![CDATA[AS3実験室: 画像を読み込んでボタンにするを書いたあとに気付いたのですが、 SimpleButtonという便利なクラスが存在しておりまして、 これを使った方がより簡単にボタン化出来るので、フォローとしてログっておきます [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p><a href="/2010/05/as3-bitmapbutton.html">AS3実験室: 画像を読み込んでボタンにする</a>を書いたあとに気付いたのですが、<br />
SimpleButtonという便利なクラスが存在しておりまして、<br />
これを使った方がより簡単にボタン化出来るので、フォローとしてログっておきます。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh4.ggpht.com/_JJkNs5Ixl70/S97GN4U-B4I/AAAAAAAAA4A/kJzsGboyxdg/s800/201005032149.png" alt="SimpleButton"/></figure>



<p></p>



<span id="more-44"></span>



<p>途中までは前記事と似たような処理なのでちょっと割愛してるところもあるのでご注意。</p>



<h2 class="wp-block-heading">1. 画像の読み込み</h2>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">private</span> <span class="hljs-keyword">var</span> bl:BulkLoader = <span class="hljs-keyword">new</span> BulkLoader(<span class="hljs-string">"imageloader"</span>);

<span class="hljs-comment">/* 中略 */</span>

bl.add( <span class="hljs-string">"images/button_normal.png"</span> );
bl.add( <span class="hljs-string">"images/button_over.png"</span> );
bl.add( <span class="hljs-string">"images/button_down.png"</span> );
bl.addEventListener( BulkProgressEvent.COMPLETE, initialize );
bl.start();
</code></span></pre>


<h2 class="wp-block-heading">2. SimpleButtonをつくる</h2>


<pre class="wp-block-code"><span><code class="hljs language-javascript"><span class="hljs-keyword">var</span> btn:SimpleButton = <span class="hljs-keyword">new</span> SimpleButton(
    <span class="hljs-keyword">new</span> Bitmap(bl.getBitmapData(<span class="hljs-string">"images/button_normal.png"</span>)),
    <span class="hljs-keyword">new</span> Bitmap(bl.getBitmapData(<span class="hljs-string">"images/button_over.png"</span>)),
    <span class="hljs-keyword">new</span> Bitmap(bl.getBitmapData(<span class="hljs-string">"images/button_down.png"</span>)),
    <span class="hljs-keyword">new</span> Bitmap(bl.getBitmapData(<span class="hljs-string">"images/button_normal.png"</span>))
);
addChild(btn);
</code></span></pre>


<p><a href="http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/display/SimpleButton.html">SimpleButton &#8211; ActionScript 3.0</a></p>



<p>使い方は上記リンク参照。余計なもの（!?）をimportしなくていい分心地よいです。</p>



<p>ただし、このままでは<a href="/2010/05/as3-bitmapbutton.html">BitmapButton</a>にはあった「選択時」の状態が使用できません。<br />
この点は今頭を悩ましているところですね。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<dl>
<dt>2010/05/17</dt>
<dd>さすがに端折りすぎたのでコードを追記</dd>
<dt>2010/05/24</dt>
<dd>フォロー記事書きました。<br />
<a href="/2010/05/as3-simpletogglebutton.html">AS3実験室: SimpleButtonクラスをトグル出来るように拡張した「SimpleToggleButton」</a></dd>
</dl>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AS3実験室: 画像を読み込んでボタンにする</title>
		<link>https://blog.mach3.jp/2010/05/02/as3-bitmapbutton.html</link>
		
		<dc:creator><![CDATA[mach3]]></dc:creator>
		<pubDate>Sun, 02 May 2010 02:34:00 +0000</pubDate>
				<category><![CDATA[Laboratory]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Bitmap]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[SimpleButton]]></category>
		<guid isPermaLink="false">http://lab.mach3.jp/2010/05/02/as3%e5%ae%9f%e9%a8%93%e5%ae%a4-%e7%94%bb%e5%83%8f%e3%82%92%e8%aa%ad%e3%81%bf%e8%be%bc%e3%82%93%e3%81%a7%e3%83%9c%e3%82%bf%e3%83%b3%e3%81%ab%e3%81%99%e3%82%8b.html</guid>

					<description><![CDATA[これも意外と頻出する処理ではないでしょうか。 読み込んだビットマップデータをボタン化する処理を、面倒なのでクラス化してみました。 BitmapButton Download : BitmapButton パブリック プロ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>これも意外と頻出する処理ではないでしょうか。<br />
読み込んだビットマップデータをボタン化する処理を、面倒なのでクラス化してみました。</p>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/S9xgPZSz5aI/AAAAAAAAA34/nVejL_S7M5E/s800/201005020105.png" alt="BitmapButton"/></figure>



<p></p>



<span id="more-45"></span>



<h2 class="wp-block-heading">BitmapButton</h2>



<p><a href="https://docs.google.com/uc?id=0B7k6jIWYcmkLMGViNTBmYWEtY2UwMC00NmJiLTk4NjctYjk4Y2VhM2Y0OTRm&amp;export=download&amp;hl=ja">Download : BitmapButton</a></p>



<h3 class="wp-block-heading">パブリック プロパティ</h3>



<dl>
<dt>hitRect : Rectangle = null</dt>
<dd>ヒット領域をRectangleで設定。 nullの場合は画像にあわせたヒット領域になります。</dd>
<dt>selected : Boolean = false</dt>
<dd>ボタンの選択状態を示すBoolean値。</dd>
</dl>



<h3 class="wp-block-heading">パブリック メソッド</h3>



<dl>
<dt>render() : void</dt>
<dd>setImagesで渡されたBitmapDataを元にボタンを生成します。</dd>
<dt>setImages( _config : Object ) : void</dt>
<dd>normalImage（通常時）、overImage（マウスオーバー時）、downImage（マウスダウン時）、selectedImage（選択時）の画像をBitmapDataで格納したオブジェクトを渡します。</dd>
</dl>



<h2 class="wp-block-heading">簡単な使い方</h2>



<p>インポートをお忘れなく。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">import</span> <span class="hljs-selector-tag">jp</span><span class="hljs-selector-class">.mach3</span><span class="hljs-selector-class">.ui</span><span class="hljs-selector-class">.BitmapButton</span>
</code></span></pre>


<h3 class="wp-block-heading">1. 画像の用意</h3>



<figure class="wp-block-image"><img decoding="async" src="http://lh5.ggpht.com/_JJkNs5Ixl70/S9xgPSD3G5I/AAAAAAAAA38/I4Amwnf9qek/s800/201005020107.png" alt="各ステータス画像の用意"/></figure>



<p></p>



<p>こんな感じで画像を用意しましょう。</p>



<h3 class="wp-block-heading">2. 画像の読み込み</h3>



<p><a href="/2010/04/as3-bulkloader.html">以前記事で紹介</a>した<a href="http://code.google.com/p/bulk-loader/">BulkLoader</a>を使ってみます。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">private</span> <span class="hljs-keyword">var</span> bl:BulkLoader = <span class="hljs-keyword">new</span> BulkLoader( <span class="hljs-string">"imageloader"</span> );

<span class="hljs-comment">/* 中略 */</span>

bl.add( <span class="hljs-string">"images/button_normal.png"</span> );
bl.add( <span class="hljs-string">"images/button_over.png"</span> );
bl.add( <span class="hljs-string">"images/button_down.png"</span> );
bl.add( <span class="hljs-string">"images/button_selected.png"</span> );
bl.addEventListener( BulkProgressEvent.COMPLETE, initialize );
bl.start();
</code></span></pre>


<h3 class="wp-block-heading">3. BitmapButtonインスタンスの生成</h3>



<p>completeイベントに設定したinitializeでビットマップボタンを生成してみます。</p>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-keyword">private</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">initialize</span><span class="hljs-params">( e:Event )</span> : <span class="hljs-title">void</span> </span>{
    <span class="hljs-keyword">var</span> btn:BitmapButton = <span class="hljs-keyword">new</span> BitmapButton;
    btn.setImages( {
        normalImage: bl.getBitmapData( <span class="hljs-string">"images/button_normal.png"</span> ),
        overImage: bl.getBitmapData( <span class="hljs-string">"images/button_over.png"</span> ),
        downImage: bl.getBitmapData( <span class="hljs-string">"images/button_down.png"</span> ),
        selectedImage: bl.getBitmapData( <span class="hljs-string">"images/button_selected.png"</span> )
    } );
    btn.render();
    addChild( btn );
}
</code></span></pre>


<p>各ステータスの画像を設定する<em>setImages()</em>は、<br />
BitmapDataを格納したnormalImage, overImage,<br />
downImage, selectedImageらをまとめたオブジェクトを引数として受け取ります。<br />
あとは<em>render()</em>でボタンイメージを生成し、addChild。</p>



<h3 class="wp-block-heading">4. イベントなど</h3>



<p>Spriteを継承しているので、イベントなどはよきにはからえ、で。</p>


<pre class="wp-block-code"><span><code class="hljs language-css"><span class="hljs-selector-tag">btn</span><span class="hljs-selector-class">.addEventListener</span>( <span class="hljs-selector-tag">MouseEvent</span><span class="hljs-selector-class">.CLICK</span>, <span class="hljs-selector-tag">myFunc</span> );
</code></span></pre>


<h3 class="wp-block-heading">5. 選択状態の変更</h3>



<p>selectedプロパティをtrueにすることで、選択時の状態にする事ができます。<br />
トグルボタンなどを作りたい時はこちらを利用します。</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">btn.selected = <span class="hljs-literal">true</span>
</code></span></pre>


<p>こんな感じで作ってみたわけですが、何かの役にたてば幸いです。<br />
とりあえず自分で使おう。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<dl>
<dt>2010/05/02</dt>
<dd>SimpleButtonを使えばもっと楽だという事に次の日気づきました</dd>
<dt>2010/05/03</dt>
<dd>フォロー記事書きました<br />
<a href="/2010/05/as3-simplebutton.html">AS3実験室: 画像を読み込んでボタンにする～SimpleButtonの巻</a></dd>
<dt>2010/05/24</dt>
<dd>フォロー記事書きました<br />
<a href="/2010/05/as3-simpletogglebutton.html">AS3実験室: SimpleButtonクラスをトグル出来るように拡張した「SimpleToggleButton」</a></dd>
</dl>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
