Home > ActionScript 3.0入門編 > lesson2

lesson2 Archive

ボタンに連動してムービークリップの表示を変える[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

ホーム > ActionScript 3.0入門編 > lesson2

Feeds
Meta

Return to page top