<?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>ADD CHILD = AS3 &#187; button</title>
	<atom:link href="http://www.addchild.net/tag/button/feed" rel="self" type="application/rss+xml" />
	<link>http://www.addchild.net</link>
	<description>初心者がFlsah ActionScript 3.0を勉強して行く軌跡です。</description>
	<lastBuildDate>Tue, 09 Feb 2010 04:10:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ボタンに連動してムービークリップの表示を変える[2-7]</title>
		<link>http://www.addchild.net/as3-beginner/ls2/284.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls2/284.html#comments</comments>
		<pubDate>Thu, 01 Oct 2009 07:44:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson2]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[navigateToURL]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[URLRequest]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=284</guid>
		<description><![CDATA[配列を利用して複数のボタンにリンクを付けてる

ムービークリップのボタンに飛び先となるURLを指定するのに配列を利用します。
配列にあらかじめ飛び先となるURLを格納して、添字を利用してループ処理を行うような感じになりま [...]]]></description>
			<content:encoded><![CDATA[<h3>配列を利用して複数のボタンにリンクを付けてる</h3>
<p>
ムービークリップのボタンに飛び先となるURLを指定するのに配列を利用します。<br />
配列にあらかじめ飛び先となるURLを格納して、添字を利用してループ処理を行うような感じになります。
</p>
<pre class="brush: jscript; auto-links: false;">
//配列
var url:Array = new Array();
url[1] = &quot;http://www.yahoo.co.jp&quot;;
url[2] = &quot;http://www.google.co.jp&quot;;
url[3] = &quot;http://www.addchild.net&quot;;
</pre>
<p>
ここでは添字を1から始めてますが、本来なら配列は0からはじまることが定められてます。<br />
しかしムービークリップのインスタンス名の数字と合わせる為に、このような手法を取っています。
</p>
<p>
配列の準備が出来れば、マウスダウンした時の処理をループさせます。
</p>
<pre class="brush: jscript; auto-links: false;">
for(var i:int = 1; i &lt; 4; i++){
	if(btn == this[&quot;btn_mc&quot;+i]){
		var link:URLRequest = new URLRequest(url[i]);
		var target:String = &quot;_self&quot;;
		navigateToURL(link,target);
	}
}
</pre>
<p>
switchを利用することも出来ますが、今回はforを使ってプログラム処理を簡略化しています。<br />
下記はswitchのプログラムです。
</p>
<p><span id="more-284"></span></p>
<pre class="brush: jscript; auto-links: false;">
switch(btn){
	//1
	case btn_mc1:
	var google:URLRequest = new URLRequest(&quot;http://www.google.co.jp&quot;);
    var target:String = &quot;_self&quot;;
	navigateToURL(google,target);
	break;
	//2
	case btn_mc2:
	var yahoo:URLRequest = new URLRequest(&quot;http://www.yahoo.co.jp&quot;);
    var target:String = &quot;_self&quot;;
	navigateToURL(yahoo,target);
	//3
	case btn_mc3:
	var addchild:URLRequest = new URLRequest(&quot;http://www.addchild.net&quot;);
    var target:String = &quot;_self&quot;;
	navigateToURL(addchild,target);
}
</pre>
<p>
素人感覚でみるとswitchの方が理解しやすいかもしれませんが、プログラムを簡略させる為にforを使いました。
</p>
<p>
これで飛び先となるURLの指定は完了しましたので、[2-6]で使用したアクションスクリプトにマウスダウンの処理を付け加えます。
</p>
<pre class="brush: jscript; auto-links: false;">
//ループを使う
for(var i:int = 1; i &lt; 4; i++){
	//イベントリスナー登録
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OVER,Over);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OUT,Out);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_DOWN,Down);

	//ボタンモード
	this[&quot;btn_mc&quot;+i].buttonMode = true;
	//イメージムービークリップを非表示
	this[&quot;img_mc&quot;+i].alpha = 0;
}
//初期状態
img_mc1.alpha = 1;

//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i &lt; 4; i++){
    	if(btn == this[&quot;btn_mc&quot;+i]){
        	this[&quot;img_mc&quot;+i].addEventListener(Event.ENTER_FRAME,imgAlpha);
    	}
	}
}
//アルファプログラム関数
function imgAlpha(event:Event){
	//ムービークリップのチェック
	var img:MovieClip = event.target as MovieClip;
	for(var i:int = 1; i &lt; 4; i++){
		var imgNo:MovieClip = this[&quot;img_mc&quot;+i] as MovieClip;
		imgNo.alpha = 0;
		img.alpha = 1;
		img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
	}
}

//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i &lt; 4; i++){
    	if(btn == this[&quot;btn_mc&quot;+i]){
        	this[&quot;img_mc&quot;+i].addEventListener(Event.ENTER_FRAME,zero);
    	}
	}
}
//リセットプログラム関数
function zero(event:Event):void{
	var img:MovieClip = event.target as MovieClip;
	img.alpha = 1;
	img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
	img.removeEventListener(Event.ENTER_FRAME,zero);
}

//マウスダウン
function Down(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	//配列
	var url:Array = new Array();
	url[1] = &quot;http://www.yahoo.co.jp&quot;;
	url[2] = &quot;http://www.google.co.jp&quot;;
	url[3] = &quot;http://www.addchild.net&quot;;

	for(var i:int = 1; i &lt; 4; i++){
		if(btn == this[&quot;btn_mc&quot;+i]){
			var link:URLRequest = new URLRequest(url[i]);
			var target:String = &quot;_self&quot;;
			navigateToURL(link,target);
		}
	}
}
</pre>
<div id="flash">
配列を利用して複数のボタンにリンクを付けてる
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/2/7-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/263.html" title="ボタンに連動してムービークリップの表示を変える[2-5] (2009年9月17日)">ボタンに連動してムービークリップの表示を変える[2-5]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/202.html" title="ムービークリップをボタンとして使う[2-3] (2009年9月9日)">ムービークリップをボタンとして使う[2-3]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/269.html" title="ボタンに連動してムービークリップの表示を変える[2-6] (2009年9月29日)">ボタンに連動してムービークリップの表示を変える[2-6]</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls2/284.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ボタンに連動してムービークリップの表示を変える[2-6]</title>
		<link>http://www.addchild.net/as3-beginner/ls2/269.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls2/269.html#comments</comments>
		<pubDate>Tue, 29 Sep 2009 08:43:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson2]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=269</guid>
		<description><![CDATA[ボタンごとにマウスオーバー（オンマウス）のムービークリップを指定する &#8211; for編

[2-5]で使用したムービークリップのボタンとイメージムービークリップを連動さるアクションスクリプトをもっと簡略化した条件 [...]]]></description>
			<content:encoded><![CDATA[<h3>ボタンごとにマウスオーバー（オンマウス）のムービークリップを指定する &#8211; for編</h3>
<p>
[2-5]で使用したムービークリップのボタンとイメージムービークリップを連動さるアクションスクリプトをもっと簡略化した条件分岐（今回はfor）でプログラム処理をします。
</p>
<p>
マウスオーバー、マウスアウトした時の処理を[2-5]ではswitchを使って条件分岐をしていましたが、今回はforを使って条件分岐を行います。<br />
forを使うことで、アクションスクリプトの簡略化にもつながります。
</p>
<pre class="brush: jscript; auto-links: false;">
//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i &lt; 4; i++){
    	if(btn == this[&quot;btn_mc&quot;+i]){
        	this[&quot;img_mc&quot;+i].addEventListener(Event.ENTER_FRAME,imgAlpha);
    	}
	}
}
//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i &lt; 4; i++){
    	if(btn == this[&quot;btn_mc&quot;+i]){
        	this[&quot;img_mc&quot;+i].addEventListener(Event.ENTER_FRAME,zero);
    	}
	}
}
</pre>
<p>
オンマウス、マウスアウトした時に走るイベントリスナーをforを使ってループさせます。
</p>
<p><span id="more-269"></span></p>
<p>
まず、forで変数iの条件を設定し、ボタンのムービークリップ（btn_mc）を条件が終わるまで+1づつ足していく処理なので、btn_mc1～btn_mc3までを示しすことになります。さらに変数btnはターゲットになっているボタンのムービークリップとなるので、&#8221;btn_mc&#8221;+iの条件と同じ時、つまりはbtn_mc1～btn_mc3でのイベントリスナーが走ります。<br />
リスナー関数も同様に、&#8221;img_mc&#8221;+iとなっているのでimg_mc1～img_mc3がインスタンス名になります。
</p>
<p>
続いてプログラムリスナー関数の条件分岐もforに変更します。
</p>
<pre class="brush: jscript; auto-links: false;">
//アルファプログラム関数
function imgAlpha(event:Event){
	//ムービークリップのチェック
	var img:MovieClip = event.target as MovieClip;
	for(var i:int = 1; i &lt; 4; i++){
		var imgNo:MovieClip = this[&quot;img_mc&quot;+i] as MovieClip;
		imgNo.alpha = 0;
		img.alpha = 1;
		img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
	}
}
//リセットプログラム関数
function zero(event:Event):void{
	var img:MovieClip = event.target as MovieClip;
	img.alpha = 1;
	img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
	img.removeEventListener(Event.ENTER_FRAME,zero);
}
</pre>
<p>
アルファプログラム関数（オンマウス時に走るイベントリスナー）<br />
上記アクションスクリプト同様にforで変数iの条件を設定します。<br />
さらに変数imgNoを宣言し、&#8221;img_mc&#8221;+iでループさせることで、img_mc1～img_mc3までを変数imgNoに置き換えますので、すべてのimg_mcの透明度が0になり非表示になります。<br />
しかしターゲットになっているムービークリップをimgに置き換えて透明度を1していますにで、ターゲットになっているムービークリップだけが表示となるカラクリです。
</p>
<p>
リセットプログラム関数（マウスアウト時に走るイベントリスナー）では、簡潔にターゲットになっているムービークリップの透明度が1、つまり表示になったらリスナー関数の登録の削除を行うカラクリです。
</p>
<pre class="brush: jscript; auto-links: false;">
//ループを使い
for(var i:int = 1; i &lt; 4; i++){
	//イベントリスナー登録
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OVER,Over);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OUT,Out);

	//ボタンモード
	this[&quot;btn_mc&quot;+i].buttonMode = true;
	//イメージムービークリップを非表示
	this[&quot;img_mc&quot;+i].alpha = 0;
}
//初期表示設定
img_mc1.alpha = 1;

//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i &lt; 4; i++){
    	if(btn == this[&quot;btn_mc&quot;+i]){
        	this[&quot;img_mc&quot;+i].addEventListener(Event.ENTER_FRAME,imgAlpha);
    	}
	}
}
//アルファプログラム関数
function imgAlpha(event:Event){
	//ムービークリップのチェック
	var img:MovieClip = event.target as MovieClip;
	for(var i:int = 1; i &lt; 4; i++){
		var imgNo:MovieClip = this[&quot;img_mc&quot;+i] as MovieClip;
		imgNo.alpha = 0;
		img.alpha = 1;
		img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
	}
}

//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i &lt; 4; i++){
    	if(btn == this[&quot;btn_mc&quot;+i]){
        	this[&quot;img_mc&quot;+i].addEventListener(Event.ENTER_FRAME,zero);
    	}
	}
}
//リセットプログラム関数
function zero(event:Event):void{
	var img:MovieClip = event.target as MovieClip;
	img.alpha = 1;
	img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
	img.removeEventListener(Event.ENTER_FRAME,zero);
}
</pre>
<div id="flash">
ボタンごとにマウスオーバー（オンマウス）のムービークリップを指定する &#8211; for
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/2/6-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/284.html" title="ボタンに連動してムービークリップの表示を変える[2-7] (2009年10月1日)">ボタンに連動してムービークリップの表示を変える[2-7]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/263.html" title="ボタンに連動してムービークリップの表示を変える[2-5] (2009年9月17日)">ボタンに連動してムービークリップの表示を変える[2-5]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/184.html" title="ムービークリップをボタンとして使う[2-1] (2009年9月7日)">ムービークリップをボタンとして使う[2-1]</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls2/269.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ボタンに連動してムービークリップの表示を変える[2-5]</title>
		<link>http://www.addchild.net/as3-beginner/ls2/263.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls2/263.html#comments</comments>
		<pubDate>Thu, 17 Sep 2009 08:34:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson2]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[switch]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=263</guid>
		<description><![CDATA[ボタンごとにマウスオーバー（オンマウス）のムービークリップを指定する &#8211; switch編

複数のムービークリップのボタンと複数のイメージムービークリップを連動させ、条件分岐（今回はswitch）でプログラム [...]]]></description>
			<content:encoded><![CDATA[<h3>ボタンごとにマウスオーバー（オンマウス）のムービークリップを指定する &#8211; switch編</h3>
<p>
複数のムービークリップのボタンと複数のイメージムービークリップを連動させ、条件分岐（今回はswitch）でプログラム処理を変えます。<br />
複数のボタンの登録は[2-2]で使用したfor文を使い、ボタンとなるムービークリップのアクションスクリプトを書きます。<br />
さらにステージ上にマウスオーバー時に動かすムービークリップを用意します。<br />
今回は[1-8]で使用したムービークリップを使い、そのムービークリップの色違いを複数用意しステージに配置してインスタンス名を付けます。（今回はimg_mc1.img_mc2にしました）<br />
インスタンス名を付ける時に[2-2]のようにインスタンス名の最後に1からの数字を付けます。
</p>
<p>
マウスオーバー時の処理とマウスアウト時の処理を変更していきます。<br />
[2-2]で使用したアクションスクリプトのマウスオーバーとマウスアウトのプログラムにイメージムービークリップを表示させるプログラムを追加します。
</p>
<pre class="brush: jscript; auto-links: false;">
//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
	switch(btn){
		//1
		case btn_mc1:
		//マウスオーバーされたらイベントリスナー登録
		img_mc1.addEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
		//2
		case btn_mc2:
		//マウスオーバーされたらイベントリスナー登録
		img_mc2.addEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
	}
}
//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
	switch(btn){
		//1
		case btn_mc1:
		img_mc1.addEventListener(Event.ENTER_FRAME,zero);
		break;
		//2
		case btn_mc2:
		img_mc2.addEventListener(Event.ENTER_FRAME,zero);
		break;
	}
}
</pre>
<p><span id="more-263"></span></p>
<p>
event.targetをbtnに置き換え、そのbtnをswitch文でcaseに該当するイベントリスナーを走らせる感じになります。<br />
この時にcaseなのでbreakを入れないと次の処理までしてしまいますので注意して下さい。
</p>
<p>
次にマウスオーバーした時とマウスアウトした時に動くプログラム関数（リスナー関数）のプログラムを書きます。<br />
今回はプログラム関数でもswitchを使いターゲット別にムービークリップの処理を変えています。<br />
例えば、img_mc1のイベントリスナーが登録されたら、imgAlphaが走りだし、img_mc1を表示させ、img_mc2を非表示にし、さらにイベントリスナーの登録解除させます。<br />
マウスアウト時も同様です。
</p>
<pre class="brush: jscript; auto-links: false;">
//アルファプログラム関数
function imgAlpha(event:Event){
	//ムービークリップのチェック
	var img:MovieClip = event.target as MovieClip;
	switch(img){
		//1
		case img_mc1:
		img_mc1.alpha = 1;
		img_mc2.alpha = 0;
		img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
		//2
		case img_mc2:
		img_mc1.alpha = 0;
		img_mc2.alpha = 1;
		img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
	}
}
//リセットプログラム関数
function zero(event:Event):void{
	var img = event.target;
	switch(img){
		//1
		case img_mc1:
		img_mc1.alpha = 1;
		img_mc1.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		img_mc1.removeEventListener(Event.ENTER_FRAME,zero);
		break;
		//2
		case img_mc2:
		img_mc2.alpha = 1;
		img_mc2.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		img_mc2.removeEventListener(Event.ENTER_FRAME,zero);
		break;
	}
}
</pre>
<p>
どのムービークリップのボタンがマウスオーバーやマウスアウトになり、どのイベントリスナーを動かすのかを条件分岐（switch）させて該当するケースでプログラムが動き出すカラクリです。
</p>
<pre class="brush: jscript; auto-links: false;">
//ループを使い
for(var i:int = 1; i &lt; 3; i++){
	//イベントリスナー登録
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OVER,Over);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OUT,Out);

	//ボタンモード
	this[&quot;btn_mc&quot;+i].buttonMode = true;
	//イメージムービークリップを非表示
	this[&quot;img_mc&quot;+i].alpha = 0;
}

//初期表示設定
img_mc1.alpha = 1;

//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
	switch(btn){
		//1
		case btn_mc1:
		//マウスオーバーされたらイベントリスナー登録
		img_mc1.addEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
		//2
		case btn_mc2:
		//マウスオーバーされたらイベントリスナー登録
		img_mc2.addEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
	}
}
//アルファプログラム関数
function imgAlpha(event:Event){
	//ムービークリップのチェック
	var img:MovieClip = event.target as MovieClip;
	trace(event.target.name);
	switch(img){
		//1
		case img_mc1:
		img_mc1.alpha = 1;
		img_mc2.alpha = 0;
		img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
		//2
		case img_mc2:
		img_mc1.alpha = 0;
		img_mc2.alpha = 1;
		img.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		break;
	}
}

//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
	switch(btn){
		//1
		case btn_mc1:
		img_mc1.addEventListener(Event.ENTER_FRAME,zero);
		break;
		//2
		case btn_mc2:
		img_mc2.addEventListener(Event.ENTER_FRAME,zero);
		break;
	}
}
function zero(event:Event):void{
	var img = event.target;
	switch(img){
		//1
		case img_mc1:
		img_mc1.alpha = 1;
		img_mc1.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		img_mc1.removeEventListener(Event.ENTER_FRAME,zero);
		break;
		//2
		case img_mc2:
		img_mc2.alpha = 1;
		img_mc2.removeEventListener(Event.ENTER_FRAME,imgAlpha);
		img_mc2.removeEventListener(Event.ENTER_FRAME,zero);
		break;
	}
}
</pre>
<div id="flash">
ボタンごとにマウスオーバー（オンマウス）のムービークリップを指定する &#8211; switch
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/2/5-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/284.html" title="ボタンに連動してムービークリップの表示を変える[2-7] (2009年10月1日)">ボタンに連動してムービークリップの表示を変える[2-7]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/269.html" title="ボタンに連動してムービークリップの表示を変える[2-6] (2009年9月29日)">ボタンに連動してムービークリップの表示を変える[2-6]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/184.html" title="ムービークリップをボタンとして使う[2-1] (2009年9月7日)">ムービークリップをボタンとして使う[2-1]</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls2/263.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ムービークリップをボタンとして使う[2-4]</title>
		<link>http://www.addchild.net/as3-beginner/ls2/260.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls2/260.html#comments</comments>
		<pubDate>Sun, 13 Sep 2009 08:10:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson2]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[navigateToURL]]></category>
		<category><![CDATA[URLRequest]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=260</guid>
		<description><![CDATA[複数のムービークリップのボタン別にリンクを付ける

[2-3]で使用したアクションスクリプトでは、複数のムービークリップに対して一つのリンク先を付けてましが、今回は押されたムービークリップのボタンごとに、別々のリンク先を [...]]]></description>
			<content:encoded><![CDATA[<h3>複数のムービークリップのボタン別にリンクを付ける</h3>
<p>
[2-3]で使用したアクションスクリプトでは、複数のムービークリップに対して一つのリンク先を付けてましが、今回は押されたムービークリップのボタンごとに、別々のリンク先を用意して、条件分岐でリンク先を変更させます。
</p>
<p>
[2-3]で使用したアクションスクリプトのクリック時、またはマウスダウン時のリスナー関数に条件分岐のプログラムを追加します。<br />
今回使う条件分岐はswitchで、ターゲットのムービークリップごとに振り分けて、別々のリンク先を指定するような感じなります。
</p>
<pre class="brush: jscript; auto-links: false;">
//押されたムービークリップで条件分岐
	switch(btn){
		//1
		case btn_mc1:
		var google:URLRequest = new URLRequest(&quot;http://www.google.co.jp&quot;);
		navigateToURL(google);
		break;
		//2
		case btn_mc2:
		var yahoo:URLRequest = new URLRequest(&quot;http://www.yahoo.co.jp&quot;);
		navigateToURL(yahoo);
	}
</pre>
<p><span id="more-260"></span></p>
<p>
クリック時もしくはマウスダウン時のムービークリップのイベントターゲットがbtn_mc1のやbtn_mc2か、どのケースに該当するか判定させています。<br />
イベントターゲットを変数btnに置き換え、そのbtnのターゲットがそのケースに当てはまるかを条件分岐しています。
</p>
<pre class="brush: jscript; auto-links: false;">
//ループを使い
for(var i:int = 1; i &lt; 3; i++){
	//イベントリスナー登録
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OVER,Over);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_DOWN,Down);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OUT,Out);

	//ボタンモード
	this[&quot;btn_mc&quot;+i].buttonMode = true;
}
//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
}
//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
}
//マウスダウン
function Down(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
    var target:String = &quot;_self&quot;;

	//押されたムービークリップで条件分岐
	switch(btn){
		//1
		case btn_mc1:
		var google:URLRequest = new URLRequest(&quot;http://www.google.co.jp&quot;);
		var target:String = &quot;_self&quot;;
		navigateToURL(google,target);
		break;
		//2
		case btn_mc2:
		var yahoo:URLRequest = new URLRequest(&quot;http://www.yahoo.co.jp&quot;);
		var target:String = &quot;_self&quot;;
		navigateToURL(yahoo,target);
	}
}
</pre>
<div id="flash">
複数のムービークリップのボタンに条件分岐でリンクを付ける
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/2/4-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/284.html" title="ボタンに連動してムービークリップの表示を変える[2-7] (2009年10月1日)">ボタンに連動してムービークリップの表示を変える[2-7]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/202.html" title="ムービークリップをボタンとして使う[2-3] (2009年9月9日)">ムービークリップをボタンとして使う[2-3]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/269.html" title="ボタンに連動してムービークリップの表示を変える[2-6] (2009年9月29日)">ボタンに連動してムービークリップの表示を変える[2-6]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/263.html" title="ボタンに連動してムービークリップの表示を変える[2-5] (2009年9月17日)">ボタンに連動してムービークリップの表示を変える[2-5]</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls2/260.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ムービークリップをボタンとして使う[2-3]</title>
		<link>http://www.addchild.net/as3-beginner/ls2/202.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls2/202.html#comments</comments>
		<pubDate>Wed, 09 Sep 2009 06:49:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson2]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[MovieClip]]></category>
		<category><![CDATA[navigateToURL]]></category>
		<category><![CDATA[URLRequest]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=202</guid>
		<description><![CDATA[ムービークリップのボタンにリンクを付ける

[2-1]で使用したアクションスクリプトに、マウスがクリックされた時またはマウスがダウンした時のプログラムに指定したURLのリンクを付けます。
URLのリンクを付ける為には、A [...]]]></description>
			<content:encoded><![CDATA[<h3>ムービークリップのボタンにリンクを付ける</h3>
<p>
[2-1]で使用したアクションスクリプトに、マウスがクリックされた時またはマウスがダウンした時のプログラムに指定したURLのリンクを付けます。<br />
URLのリンクを付ける為には、ActionScript 2.0ではgetURLなどを使い外部ページにアクセスが出来ましたが、ActionScript 3.0ではgetURLに変わる方法でプログラムを書かなくてはなりません。<br />
URLRequestクラスでまずURL情報を指定して、navigateToURLクラスにその情報を渡してリンクさせるみたいな感じになります。
</p>
<pre class="brush: jscript; auto-links: false;">
//プログラム関数（マウスダウン）
function Down(event:Event):void{
	//URLRequestの設定
	var Url:URLRequest = new URLRequest(&quot;http://www.addchild.net/&quot;);
	//ターゲット条件を指定
	var target:String = &quot;_self&quot;;
	//指定したURLに飛ばす
	navigateToURL(Url,target);
}
</pre>
<p><span id="more-202"></span></p>
<p>
new演算子しでURLを変数Urlに置き換えて、置き換えてたUrlをnavigateToURLでページに移動となります。<br />
さらに、ターゲットをselfにすることで現在のページで移動となりますが、blankなどで別タブや別ウィンドウで表示させることも可能です。
</p>
<pre class="brush: jscript; auto-links: false;">
//イベントリスナー登録
btn_mc.addEventListener(MouseEvent.ROLL_OVER,Over);
btn_mc.addEventListener(MouseEvent.CLICK,Down);
btn_mc.addEventListener(MouseEvent.ROLL_OUT,Out);

//ボタンモード
btn_mc.buttonMode = true;

//プログラム関数（マウスオーバー）
function Over(event:Event):void{
	btn_mc.alpha = 0.7;
}

//プログラム関数（マウスダウン）
function Down(event:Event):void{
	//URLRequestの設定
	var Url:URLRequest = new URLRequest(&quot;http://www.addchild.net/&quot;);
	//ターゲット条件を指定
	var target:String = &quot;_self&quot;;
	//指定したURLに飛ばす
	navigateToURL(Url,target);
}

//プログラム関数（マウスアウト）
function Out(event:Event):void{
	btn_mc.alpha = 1;
}
</pre>
<div id="flash">
ムービークリップをボタンにリンクを付ける
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/2/3-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/284.html" title="ボタンに連動してムービークリップの表示を変える[2-7] (2009年10月1日)">ボタンに連動してムービークリップの表示を変える[2-7]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/184.html" title="ムービークリップをボタンとして使う[2-1] (2009年9月7日)">ムービークリップをボタンとして使う[2-1]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls1/152.html" title="ムービークリップをボタンでコントロールする［1-7］ (2009年9月2日)">ムービークリップをボタンでコントロールする［1-7］</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls2/202.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ムービークリップをボタンとして使う[2-2]</title>
		<link>http://www.addchild.net/as3-beginner/ls2/192.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls2/192.html#comments</comments>
		<pubDate>Tue, 08 Sep 2009 04:23:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson2]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=192</guid>
		<description><![CDATA[複数のムービークリップのボタンに同じアクションスクリプトを使う

同じ動きをさせたいムービークリップをステージにそれぞれ配置し、インスタンス名に順番を付けて用意します。（例：btn_mc1）
この時の付ける順番とは、1か [...]]]></description>
			<content:encoded><![CDATA[<h3>複数のムービークリップのボタンに同じアクションスクリプトを使う</h3>
<p>
同じ動きをさせたいムービークリップをステージにそれぞれ配置し、インスタンス名に順番を付けて用意します。（例：btn_mc1）<br />
この時の付ける順番とは、1から始まることが前提です。
</p>
<p>
ムービークリップに連番を付けたら、for構文を利用し、必要条件までループ処理をさせます。<br />
今回は1～4までの連番を利用して、同じ動きをさせたいムービークリップを、必要な数だけイベントリスナーを用意するみたいな感じになります。<br />
さらにボタンモードとして使用するムービークリップもループさせます。
</p>
<pre class="brush: jscript; auto-links: false;">
//ループを使い
for(var i:int = 1; i &lt; 5; i++){
	//イベントリスナー登録
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OVER,Over);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_DOWN,Down);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OUT,Out);

	//ボタンモード
	this[&quot;btn_mc&quot;+i].buttonMode = true;
}
</pre>
<p>
for(var i:int = 1; i < 5; i++)は数字を変数iに置き換え、1以上5未満までプラス1を繰り返す動きになりますので、ムービークリップのbtn_mc1～btn_mc4でイベントリスナーが用意されることになります。<br />
またボタンモードも同様に必要分だけ宣言がだきてることになります。
</p>
<p><span id="more-192"></span></p>
<p>
あとは[2-1]のようにプログラム関数を用意するだけになりますが、各function関数にターゲットを置き換える変数を宣言しなくてはなりません…<br />
ここのevent.targetについては詳しく説明できるようになったときに…
</p>
<pre class="brush: jscript; auto-links: false;">
//ループを使い
for(var i:int = 1; i &lt; 5; i++){
	//イベントリスナー登録
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OVER,Over);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_DOWN,Down);
	this[&quot;btn_mc&quot;+i].addEventListener(MouseEvent.MOUSE_OUT,Out);

	//ボタンモード
	this[&quot;btn_mc&quot;+i].buttonMode = true;
}
//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
}
//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
}
//マウスダウン
function Down(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.5;
}
</pre>
<div id="flash">
複数のムービークリップのボタンに同じ動きをさせる
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/2/2-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/284.html" title="ボタンに連動してムービークリップの表示を変える[2-7] (2009年10月1日)">ボタンに連動してムービークリップの表示を変える[2-7]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/269.html" title="ボタンに連動してムービークリップの表示を変える[2-6] (2009年9月29日)">ボタンに連動してムービークリップの表示を変える[2-6]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/263.html" title="ボタンに連動してムービークリップの表示を変える[2-5] (2009年9月17日)">ボタンに連動してムービークリップの表示を変える[2-5]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/184.html" title="ムービークリップをボタンとして使う[2-1] (2009年9月7日)">ムービークリップをボタンとして使う[2-1]</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls2/192.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ムービークリップをボタンとして使う[2-1]</title>
		<link>http://www.addchild.net/as3-beginner/ls2/184.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls2/184.html#comments</comments>
		<pubDate>Mon, 07 Sep 2009 01:00:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson2]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=184</guid>
		<description><![CDATA[ムービークリップのボタンをロールオーバーさせる

ステージにボタンとなる素材を用意し、シンボルに変更→ムービークリップでインスタンス名を付けます。（今回はbtn_mcにしました）
ボタンにマウスが乗った時、クリックされた [...]]]></description>
			<content:encoded><![CDATA[<h3>ムービークリップのボタンをロールオーバーさせる</h3>
<p>
ステージにボタンとなる素材を用意し、シンボルに変更→ムービークリップでインスタンス名を付けます。（今回はbtn_mcにしました）<br />
ボタンにマウスが乗った時、クリックされた時、マウスが離れた時のイベントリスナーを書きます。
</p>
<pre class="brush: jscript; auto-links: false;">
//イベントリスナー登録
btn_mc.addEventListener(MouseEvent.ROLL_OVER,Over);
btn_mc.addEventListener(MouseEvent.CLICK,Down);
btn_mc.addEventListener(MouseEvent.ROLL_OUT,Out);
</pre>
<p>
マウスイベントでは同じ動きをするイベントがあります。（細かく言うと違います）<br />
マウスオーバー時には、MOUSE_OVERとROLL_OVERがあります。<br />
マウスクリック時には、MOUSE_DOWNとCLICKがあります。<br />
マウスアウト時には、MOUSE_OUTとROLL_OUTがあります。
</p>
<p><span id="more-184"></span></p>
<p>
ムービークリップをボタンとして使う場合は、イベントリスナーを書くと同時に、ボタンモードの指定が必要になります。<br />
書かなくてもイベントリスナーは動きますが、マウスしたときに指マークにならないので、ボタンとして使う場合には違和感が出てしまいますので、ボタンモードをし使用することを進めます。
</p>
<p>
各イベントリスナーのイベント処理のプログラムをalphaを使い用意します。
</p>
<pre class="brush: jscript; auto-links: false;">
//イベントリスナー登録
btn_mc.addEventListener(MouseEvent.M.ROLL_OVER,Over);
btn_mc.addEventListener(MouseEvent.CLICK,Down);
btn_mc.addEventListener(MouseEvent.ROLL_OUT,Out);

//ボタンモード
btn_mc.buttonMode = true;

//プログラム関数（マウスオーバー）
function Over(event:Event):void{
	btn_mc.alpha = 0.7;
}

//プログラム関数（マウスダウン）
function Down(event:Event):void{
	btn_mc.alpha = 0.5;
}

//プログラム登関数（マウスアウト）
function Out(event:Event):void{
	btn_mc.alpha = 1;
}
</pre>
<div id="flash">
ムービークリップをボタンとして使う
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/2/1-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/284.html" title="ボタンに連動してムービークリップの表示を変える[2-7] (2009年10月1日)">ボタンに連動してムービークリップの表示を変える[2-7]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/269.html" title="ボタンに連動してムービークリップの表示を変える[2-6] (2009年9月29日)">ボタンに連動してムービークリップの表示を変える[2-6]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/263.html" title="ボタンに連動してムービークリップの表示を変える[2-5] (2009年9月17日)">ボタンに連動してムービークリップの表示を変える[2-5]</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls2/184.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>クリック制御でフェードを繰り返すムービークリップ[1-9]</title>
		<link>http://www.addchild.net/as3-beginner/ls1/175.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls1/175.html#comments</comments>
		<pubDate>Fri, 04 Sep 2009 05:49:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson1]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=175</guid>
		<description><![CDATA[クリックでフェードを繰り返し、ダブルクリックでフェードの繰り返しを停止

[1-8]で使用したアクションスクリプトにクリックイベントとダブルクリックイベントのイベントリスナーを追記します。
ここで注意なんですがダブルクリ [...]]]></description>
			<content:encoded><![CDATA[<h3>クリックでフェードを繰り返し、ダブルクリックでフェードの繰り返しを停止</h3>
<p>
[1-8]で使用したアクションスクリプトにクリックイベントとダブルクリックイベントのイベントリスナーを追記します。<br />
ここで注意なんですがダブルクリックイベントを使用するためには、宣言が必要になりますので、わかりやすいところに何をダブルクリックに使うか宣言します。（今回はステージにしました）
</p>
<pre class="brush: jscript; auto-links: false;">
//ダブルクリック宣言
stage.doubleClickEnabled = true;
</pre>
<p>
クリックされた時にフェードインが始まり、表示されたらフェードアウトする動作になるので、クリックされた時にフェードを繰り返すプログラムを呼び出すイベントリスナーを書きます。
</p>
<pre class="brush: jscript; auto-links: false;">
//イベントリスナー登録
stage.addEventListener(MouseEvent.CLICK,alphaImg);
stage.addEventListener(MouseEvent.DOUBLE_CLICK,stopAlpha);

//クリックされたプログラム関数
function alphaImg(event:MouseEvent):void{
	//クリックされたらイベントリスナー登録
	img_mc.addEventListener(Event.ENTER_FRAME,imgAlpha);
}
</pre>
<p><span id="more-175"></span></p>
<p>
クリックされたらENTER_FRAMEのイベントリスナーを登録して、プログラム（imgAplha）を動かすみたいな感じです。<br />
imgAlphaのプログラム関数では、ムービークリップを「alpha = 0」から「alpha = 1」の再生させ、表示、非表示を繰り返す条件分岐をしています。
</p>
<pre class="brush: jscript; auto-links: false;">
//アルファプログラム関数
function imgAlpha(event:Event){
	//img_mc.alpha += alphaX;
	img_mc.alpha -= alphaX;
	//条件分岐
	if (img_mc.alpha &gt; 1 || img_mc.alpha &lt; 0){
		alphaX *= -1;
	}
}
</pre>
<p>
透過速度としてalphaXを変数に置き換えてます。
</p>
<p>
ダブルクリックした時の処理としては、ダブルクリックされたら、ムービークリップを表示させENTER_FRAMEのイベントリスナーの登録を解除させます。
</p>
<pre class="brush: jscript; auto-links: false;">
//ダブルクリック宣言
stage.doubleClickEnabled = true;

//変数の宣言
var alphaX:Number = 0.05;
//img_mc.alpha = 0;

//イベントリスナー登録
stage.addEventListener(MouseEvent.CLICK,alphaImg);
stage.addEventListener(MouseEvent.DOUBLE_CLICK,stopAlpha);

//クリックされたプログラム関数
function alphaImg(event:MouseEvent):void{
	//クリックされたらイベントリスナー登録
	img_mc.addEventListener(Event.ENTER_FRAME,imgAlpha);
}

//アルファプログラム関数
function imgAlpha(event:Event){
	//img_mc.alpha += alphaX;
	img_mc.alpha -= alphaX;
	//条件分岐
	if (img_mc.alpha &gt; 1 || img_mc.alpha &lt; 0){
		alphaX *= -1;
	}
}

//ダブルクリックさらたイベントリスナー登録
function stopAlpha(event:MouseEvent):void{
	//表示してイベントリスナーを解除
	img_mc.alpha = 1;
	img_mc.removeEventListener(Event.ENTER_FRAME,imgAlpha);
}
</pre>
<div id="flash">
ボタンを押したらムービークリップを再生、停止
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/1/9-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/184.html" title="ムービークリップをボタンとして使う[2-1] (2009年9月7日)">ムービークリップをボタンとして使う[2-1]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/284.html" title="ボタンに連動してムービークリップの表示を変える[2-7] (2009年10月1日)">ボタンに連動してムービークリップの表示を変える[2-7]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/269.html" title="ボタンに連動してムービークリップの表示を変える[2-6] (2009年9月29日)">ボタンに連動してムービークリップの表示を変える[2-6]</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls1/175.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ムービークリップをボタンでコントロールする［1-7］</title>
		<link>http://www.addchild.net/as3-beginner/ls1/152.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls1/152.html#comments</comments>
		<pubDate>Wed, 02 Sep 2009 02:25:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson1]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=152</guid>
		<description><![CDATA[ボタンを押してムービークリップを再生、停止させる（イベントリスナー編）

[1-6]はタイムライン制御でムービークリップを再生させましたが、今回はタイムラインを使わずにイベントリスナーのみでムービークリップをコントロール [...]]]></description>
			<content:encoded><![CDATA[<h3>ボタンを押してムービークリップを再生、停止させる（イベントリスナー編）</h3>
<p>
[1-6]はタイムライン制御でムービークリップを再生させましたが、今回はタイムラインを使わずにイベントリスナーのみでムービークリップをコントロールします。
</p>
<p>
[1-5]で使用したアクションスクリプトを利用して、ボタン制御のプログラムを追加したいと思います。<br />
新規シンボルでボタンをステージに配置し、インスタンス名を付けます。（今回はstart_btnにしました）<br />
さらに今回はストップ用ボタンも同じような手順でステージに配置し、インスタンス名を付けます。（今回はstop_btnにしました）
</p>
<p>
[1-5]のアクションスクリプトにボタンを押した時のプログラムを足していきます。<br />
まず、ボタンが押された時のイベントリスナーを登録し、さらにボタンが押されたら実行するイベントリスナーを登録するみたいな感じなりますが、ボタンが押された時のイベントリスナーが[1-5]で使用したイベントリスナーになります。<br />
実はイベントリスナーで実行するプログラムの中に、さらに実行するイベントリスナーを登録することができるんです。
</p>
<pre class="brush: jscript; auto-links: false;">
//スタートボタンを押した時のイベントリスナー
start_btn.addEventListener(MouseEvent.CLICK,ballStart);

function ballStart(event:MouseEvent):void{
	//ボタンが押された時のイベントリスナー
	ball_mc.addEventListener(Event.ENTER_FRAME,ball);
}
</pre>
<p><span id="more-152"></span></p>
<p>
スタートボタンがCLICKされたら、イベントリスナーを登録し、そのプログラムが動き出す処理になります。
</p>
<p>
今回はさらにストップボタンを押した時のプログラムを追加します。<br />
[1-4]で使用したremoveEventListenerを利用して、ストップボタンが押されたら登録されているイベントリスナーを解除みたいな感じになります。
</p>
<pre class="brush: jscript; auto-links: false;">
//ストップボタンを押した時のイベントリスナー
stop_btn.addEventListener(MouseEvent.CLICK,ballstop);

function ballstop(event:Event):void {
	//ボタンが押された時のイベントリスナー解除
	ball_mc.removeEventListener(Event.ENTER_FRAME,ball);
}
</pre>
<p>
これで、スタートボタンを押したらムービークリップが再生され、ストップボタンが押すとムービークリップが停止となります。<br />
ここで現状ではまだ把握できてませんが、ストップボタンを押してイベントリスナーの登録を解除しているんですが、スタートボタンを再度押すと、続きから再生されます。<br />
ここの解説はわかり次第と言うことで・・・
</p>
<pre class="brush: jscript; auto-links: false;">
var speedx:Number = 5;  //スピード
var cicle:Number = 10;  //回転
var mcWidth:Number = ball_mc.width / 2;  //インスタンスの幅
var stageL:Number = 0 + mcWidth;  //幅の最小値
var stageR:Number = stage.stageWidth - mcWidth;  //幅の最大値

//スタートボタンを押した時のイベントリスナー
start_btn.addEventListener(MouseEvent.CLICK,ballStart);

function ballStart(event:MouseEvent):void{
	//ボタンが押された時のイベントリスナー
	ball_mc.addEventListener(Event.ENTER_FRAME,ball);
}

//ballのプログラム関数
function ball(event:Event):void {
	ball_mc.x += speedx;
	ball_mc.rotation += cicle;
	if (ball_mc.x &lt; stageL || ball_mc.x &gt; stageR) {
		speedx *= -1;
		cicle *= -1;
	}
}

//ストップボタンを押した時のイベントリスナー
stop_btn.addEventListener(MouseEvent.CLICK,ballstop);

function ballstop(event:Event):void {
	//ボタンが押された時のイベントリスナー解除
	ball_mc.removeEventListener(Event.ENTER_FRAME,ball);
}
</pre>
<div id="flash">
ボタンを押したらムービークリップを再生、停止
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/1/7-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/202.html" title="ムービークリップをボタンとして使う[2-3] (2009年9月9日)">ムービークリップをボタンとして使う[2-3]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/184.html" title="ムービークリップをボタンとして使う[2-1] (2009年9月7日)">ムービークリップをボタンとして使う[2-1]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls1/134.html" title="ムービークリップをボタンでコントロールする［1-6］ (2009年9月1日)">ムービークリップをボタンでコントロールする［1-6］</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls1/152.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ムービークリップをボタンでコントロールする［1-6］</title>
		<link>http://www.addchild.net/as3-beginner/ls1/134.html</link>
		<comments>http://www.addchild.net/as3-beginner/ls1/134.html#comments</comments>
		<pubDate>Tue, 01 Sep 2009 09:38:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[lesson1]]></category>
		<category><![CDATA[addEventListener]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[MovieClip]]></category>

		<guid isPermaLink="false">http://www.addchild.net/?p=134</guid>
		<description><![CDATA[ボタンを押してムービークリップを再生させる（タイムライン制御編）

イベントリスナーのイベントのENTER_FRAMEを使うとフレームが読み込まれた時点で、再生してしまいますので、ボタンを用意したところで関係なしに再生さ [...]]]></description>
			<content:encoded><![CDATA[<h3>ボタンを押してムービークリップを再生させる（タイムライン制御編）</h3>
<p>
イベントリスナーのイベントのENTER_FRAMEを使うとフレームが読み込まれた時点で、再生してしまいますので、ボタンを用意したところで関係なしに再生されてしまいます。<br />
そこでボタンを違うフレームに用意し、ボタンが押されたら、再生したいムービークリップのフレームに移動させて再生させるみたいなカラクリになります。
</p>
<p><img src="http://www.addchild.net/wp-content/uploads/2009/09/ball_button.jpg" alt="ball_button" title="ball_button" width="458" height="185" class="aligncenter size-full wp-image-140" /></p>
<p>
1フレーム目にボタンを押した時のアクションスクリプトを用意し、2フレーム目にムービークリップのアクションスクリプトを用意します。<br />
新規シンボルでボタンをステージに配置し、インスタンス名を付けます。（今回はstart_btnにしました）
</p>
<p><span id="more-134"></span></p>
<p>
1フレーム目のアクションスクリプトにはボタンがクリックされたら、2フレームに行きなさいみたいな感じのプログラムを書きます。<br />
また、フレームが自動にしないようにstop()で止めます。
</p>
<pre class="brush: jscript; auto-links: false;">
stop(); //ストップ処理

//イベントリスナー登録
start_btn.addEventListener(MouseEvent.CLICK, frm2);

//プログラム関数
function frm2(event:MouseEvent):void{
	gotoAndStop(2);
}
</pre>
<p>
イベントリスナーでインスタンス（start_btn)がクリックされたら（MouseEvent.CLICK）frm2のプログラムを実行しなさいと登録し、frm2関数で2フレーム目に移動（gotoAndStop(2)）となります。
</p>
<p>
2フレーム目にはムービークリップのプログラムを書きます。（ムービークリップにActionSprictを書く[1-5]を使用）
</p>
<pre class="brush: jscript; auto-links: false;">
var speedx:Number = 5;  //スピード
var cicle:Number = 10;  //回転
var mcWidth:Number = ball_mc.width / 2;  //インスタンスの幅
var stageL:Number = 0 + mcWidth;  //幅の最小値
var stageR:Number = stage.stageWidth - mcWidth;  //幅の最大値

//イベントリスナー登録
ball_mc.addEventListener(Event.ENTER_FRAME,ball); 

//プログラム関数
function ball(event:Event):void {
	ball_mc.x += speedx;
	ball_mc.rotation += cicle;
	if (ball_mc.x &lt; stageL || ball_mc.x &gt; stageR) {
		speedx *= -1;
		cicle *= -1;
	}
}
</pre>
<div id="flash">
ボタンを押したらムービークリップを再生
</div>
<p><script type="text/javascript">
  swfobject.embedSWF("http://www.addchild.net/fl/1/6-A.swf", "flash", "550", "200", "9.0.0");
</script></p>

	<h4>関連する投稿</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.addchild.net/as3-beginner/ls2/260.html" title="ムービークリップをボタンとして使う[2-4] (2009年9月13日)">ムービークリップをボタンとして使う[2-4]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/202.html" title="ムービークリップをボタンとして使う[2-3] (2009年9月9日)">ムービークリップをボタンとして使う[2-3]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/192.html" title="ムービークリップをボタンとして使う[2-2] (2009年9月8日)">ムービークリップをボタンとして使う[2-2]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls2/184.html" title="ムービークリップをボタンとして使う[2-1] (2009年9月7日)">ムービークリップをボタンとして使う[2-1]</a> (0)</li>
	<li><a href="http://www.addchild.net/as3-beginner/ls1/152.html" title="ムービークリップをボタンでコントロールする［1-7］ (2009年9月2日)">ムービークリップをボタンでコントロールする［1-7］</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.addchild.net/as3-beginner/ls1/134.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
