ホーム > タグ > button

button

ボタンに連動してムービークリップの表示を変える[2-7]

配列を利用して複数のボタンにリンクを付けてる

ムービークリップのボタンに飛び先となるURLを指定するのに配列を利用します。
配列にあらかじめ飛び先となるURLを格納して、添字を利用してループ処理を行うような感じになります。

//配列
var url:Array = new Array();
url[1] = "http://www.yahoo.co.jp";
url[2] = "http://www.google.co.jp";
url[3] = "http://www.addchild.net";

ここでは添字を1から始めてますが、本来なら配列は0からはじまることが定められてます。
しかしムービークリップのインスタンス名の数字と合わせる為に、このような手法を取っています。

配列の準備が出来れば、マウスダウンした時の処理をループさせます。

for(var i:int = 1; i < 4; i++){
	if(btn == this["btn_mc"+i]){
		var link:URLRequest = new URLRequest(url[i]);
		var target:String = "_self";
		navigateToURL(link,target);
	}
}

switchを利用することも出来ますが、今回はforを使ってプログラム処理を簡略化しています。
下記はswitchのプログラムです。

Continue reading

ボタンに連動してムービークリップの表示を変える[2-6]

ボタンごとにマウスオーバー(オンマウス)のムービークリップを指定する – for編

[2-5]で使用したムービークリップのボタンとイメージムービークリップを連動さるアクションスクリプトをもっと簡略化した条件分岐(今回はfor)でプログラム処理をします。

マウスオーバー、マウスアウトした時の処理を[2-5]ではswitchを使って条件分岐をしていましたが、今回はforを使って条件分岐を行います。
forを使うことで、アクションスクリプトの簡略化にもつながります。

//マウスオーバー
function Over(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 0.7;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i < 4; i++){
    	if(btn == this["btn_mc"+i]){
        	this["img_mc"+i].addEventListener(Event.ENTER_FRAME,imgAlpha);
    	}
	}
}
//マウスアウト
function Out(event:Event):void{
	var btn = event.target;  //ターゲットを置き換える
	btn.alpha = 1;
	//条件に合わしてイベントリスナー登録
	for(var i:int = 1; i < 4; i++){
    	if(btn == this["btn_mc"+i]){
        	this["img_mc"+i].addEventListener(Event.ENTER_FRAME,zero);
    	}
	}
}

オンマウス、マウスアウトした時に走るイベントリスナーをforを使ってループさせます。

Continue reading

ボタンに連動してムービークリップの表示を変える[2-5]

ボタンごとにマウスオーバー(オンマウス)のムービークリップを指定する – switch編

複数のムービークリップのボタンと複数のイメージムービークリップを連動させ、条件分岐(今回はswitch)でプログラム処理を変えます。
複数のボタンの登録は[2-2]で使用したfor文を使い、ボタンとなるムービークリップのアクションスクリプトを書きます。
さらにステージ上にマウスオーバー時に動かすムービークリップを用意します。
今回は[1-8]で使用したムービークリップを使い、そのムービークリップの色違いを複数用意しステージに配置してインスタンス名を付けます。(今回はimg_mc1.img_mc2にしました)
インスタンス名を付ける時に[2-2]のようにインスタンス名の最後に1からの数字を付けます。

マウスオーバー時の処理とマウスアウト時の処理を変更していきます。
[2-2]で使用したアクションスクリプトのマウスオーバーとマウスアウトのプログラムにイメージムービークリップを表示させるプログラムを追加します。

//マウスオーバー
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;
	}
}

Continue reading

ムービークリップをボタンとして使う[2-4]

複数のムービークリップのボタン別にリンクを付ける

[2-3]で使用したアクションスクリプトでは、複数のムービークリップに対して一つのリンク先を付けてましが、今回は押されたムービークリップのボタンごとに、別々のリンク先を用意して、条件分岐でリンク先を変更させます。

[2-3]で使用したアクションスクリプトのクリック時、またはマウスダウン時のリスナー関数に条件分岐のプログラムを追加します。
今回使う条件分岐はswitchで、ターゲットのムービークリップごとに振り分けて、別々のリンク先を指定するような感じなります。

//押されたムービークリップで条件分岐
	switch(btn){
		//1
		case btn_mc1:
		var google:URLRequest = new URLRequest("http://www.google.co.jp");
		navigateToURL(google);
		break;
		//2
		case btn_mc2:
		var yahoo:URLRequest = new URLRequest("http://www.yahoo.co.jp");
		navigateToURL(yahoo);
	}

Continue reading

ムービークリップをボタンとして使う[2-3]

ムービークリップのボタンにリンクを付ける

[2-1]で使用したアクションスクリプトに、マウスがクリックされた時またはマウスがダウンした時のプログラムに指定したURLのリンクを付けます。
URLのリンクを付ける為には、ActionScript 2.0ではgetURLなどを使い外部ページにアクセスが出来ましたが、ActionScript 3.0ではgetURLに変わる方法でプログラムを書かなくてはなりません。
URLRequestクラスでまずURL情報を指定して、navigateToURLクラスにその情報を渡してリンクさせるみたいな感じになります。

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

Continue reading

ムービークリップをボタンとして使う[2-2]

複数のムービークリップのボタンに同じアクションスクリプトを使う

同じ動きをさせたいムービークリップをステージにそれぞれ配置し、インスタンス名に順番を付けて用意します。(例:btn_mc1)
この時の付ける順番とは、1から始まることが前提です。

ムービークリップに連番を付けたら、for構文を利用し、必要条件までループ処理をさせます。
今回は1~4までの連番を利用して、同じ動きをさせたいムービークリップを、必要な数だけイベントリスナーを用意するみたいな感じになります。
さらにボタンモードとして使用するムービークリップもループさせます。

//ループを使い
for(var i:int = 1; i < 5; i++){
	//イベントリスナー登録
	this["btn_mc"+i].addEventListener(MouseEvent.MOUSE_OVER,Over);
	this["btn_mc"+i].addEventListener(MouseEvent.MOUSE_DOWN,Down);
	this["btn_mc"+i].addEventListener(MouseEvent.MOUSE_OUT,Out);

	//ボタンモード
	this["btn_mc"+i].buttonMode = true;
}

for(var i:int = 1; i < 5; i++)は数字を変数iに置き換え、1以上5未満までプラス1を繰り返す動きになりますので、ムービークリップのbtn_mc1~btn_mc4でイベントリスナーが用意されることになります。
またボタンモードも同様に必要分だけ宣言がだきてることになります。

Continue reading

ムービークリップをボタンとして使う[2-1]

ムービークリップのボタンをロールオーバーさせる

ステージにボタンとなる素材を用意し、シンボルに変更→ムービークリップでインスタンス名を付けます。(今回はbtn_mcにしました)
ボタンにマウスが乗った時、クリックされた時、マウスが離れた時のイベントリスナーを書きます。

//イベントリスナー登録
btn_mc.addEventListener(MouseEvent.ROLL_OVER,Over);
btn_mc.addEventListener(MouseEvent.CLICK,Down);
btn_mc.addEventListener(MouseEvent.ROLL_OUT,Out);

マウスイベントでは同じ動きをするイベントがあります。(細かく言うと違います)
マウスオーバー時には、MOUSE_OVERとROLL_OVERがあります。
マウスクリック時には、MOUSE_DOWNとCLICKがあります。
マウスアウト時には、MOUSE_OUTとROLL_OUTがあります。

Continue reading

クリック制御でフェードを繰り返すムービークリップ[1-9]

クリックでフェードを繰り返し、ダブルクリックでフェードの繰り返しを停止

[1-8]で使用したアクションスクリプトにクリックイベントとダブルクリックイベントのイベントリスナーを追記します。
ここで注意なんですがダブルクリックイベントを使用するためには、宣言が必要になりますので、わかりやすいところに何をダブルクリックに使うか宣言します。(今回はステージにしました)

//ダブルクリック宣言
stage.doubleClickEnabled = true;

クリックされた時にフェードインが始まり、表示されたらフェードアウトする動作になるので、クリックされた時にフェードを繰り返すプログラムを呼び出すイベントリスナーを書きます。

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

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

Continue reading

ムービークリップをボタンでコントロールする[1-7]

ボタンを押してムービークリップを再生、停止させる(イベントリスナー編)

[1-6]はタイムライン制御でムービークリップを再生させましたが、今回はタイムラインを使わずにイベントリスナーのみでムービークリップをコントロールします。

[1-5]で使用したアクションスクリプトを利用して、ボタン制御のプログラムを追加したいと思います。
新規シンボルでボタンをステージに配置し、インスタンス名を付けます。(今回はstart_btnにしました)
さらに今回はストップ用ボタンも同じような手順でステージに配置し、インスタンス名を付けます。(今回はstop_btnにしました)

[1-5]のアクションスクリプトにボタンを押した時のプログラムを足していきます。
まず、ボタンが押された時のイベントリスナーを登録し、さらにボタンが押されたら実行するイベントリスナーを登録するみたいな感じなりますが、ボタンが押された時のイベントリスナーが[1-5]で使用したイベントリスナーになります。
実はイベントリスナーで実行するプログラムの中に、さらに実行するイベントリスナーを登録することができるんです。

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

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

Continue reading

ムービークリップをボタンでコントロールする[1-6]

ボタンを押してムービークリップを再生させる(タイムライン制御編)

イベントリスナーのイベントのENTER_FRAMEを使うとフレームが読み込まれた時点で、再生してしまいますので、ボタンを用意したところで関係なしに再生されてしまいます。
そこでボタンを違うフレームに用意し、ボタンが押されたら、再生したいムービークリップのフレームに移動させて再生させるみたいなカラクリになります。

ball_button

1フレーム目にボタンを押した時のアクションスクリプトを用意し、2フレーム目にムービークリップのアクションスクリプトを用意します。
新規シンボルでボタンをステージに配置し、インスタンス名を付けます。(今回はstart_btnにしました)

Continue reading

Home > Tags > button

Feeds
Meta

Return to page top