ホーム > タグ > MovieClip

MovieClip

ムービークリップをボタンとして使う[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-8]

フェードインする画像

新規シンボルでムービークリップに画像を用意し、インスタンス名を付けます。(今回はimg_mcにしました)
さらにActionScript用レイヤーを新規作成します。

用意したActionScriptレイヤーにアクションスクリプトを書いていきます。
ムービークリップの初期状態を非表示にします。厳密に言うと非表示ではなく、透明度で透過にさせることです。

//初期状態を非表示
img_mc.alpha = 0;

イベントリスナーのイベントのENTER_FRAMEでムービークリップが読み込まれたら、再生させ「alpha = 0」から「alpha = 1」になり、非表示から表示になるフェードインのカラクリになります。

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

ムービークリップにActionSprictを書く[1-5]

イベントリスナー(addEventListener)を使ってムービークリップを反復運動させる

[1-4]では指定した位置に来たら、処理をやめるプログラムを書きましたが、今回は反復運動させます。(永久運動)
今回はさらに、イベント処理にいくつか変数を使ってアクションスクリプトを書きていきます。

ActionScript3.0からプログラムで変数を使うには、必ず宣言が必要になりましたので、今回使う変数を宣言します。
今回使う変数は、X軸の数値(スピード)、オブジェクトの角度の数値(回転)、ステージ幅の数値、インスタンスの幅なので、まずは変数を宣言していきます。

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;//幅の最大値

ここで注目すべきは、ステージの幅にインスタンスの幅の半分を足したり、引いたりしているところです。
これはインスタンスの基準点が真ん中に設定されているので、ステージの数値をそのまま指定すると基準点がステージ幅の数値にきた時に反転してしまう為の回避方法です。

Continue reading

ムービークリップにActionSprictを書く[1-4]

イベントリスナー(addEventListener)を使ってムービークリップを動かして止める

今までのプログラム処理をより実践的な書き方にします。
ActionScript2.0からActionScript 3.0になって、一番変わったのがイベント処理の書き方になると思います。
AS3.0から新たに登録されたイベントリスナー(リスナー関数)と言う関数をインスタンスに登録し、目的の処理を行います。
※イベントリスナーについては、改め解説したいと思います。

[1-2]で書いたスクリプトをイベントリスナーに置き換えます。(今回からシンボルとインスタンス名が変更になっています)

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

//プログラム関数
function ball(event:Event):void {
	ball_mc.x += 5;
	ball_mc.rotation += 10;
	if (ball_mc.x > 430){  //条件分岐
		ball_mc.removeEventListener(Event.ENTER_FRAME,ball);
	}
}

Continue reading

ムービークリップにActionSprictを書く[1-3]

ムービークリップの動きを止める為の条件分岐(if文)

[1-2]でムービークリップを右に回りながら移動するようにアクションスクリプトを書きましたが、このままだと物体が右に消えてしまいます。
なぜならプログラムの処理が、見えなくなっても物体が永遠に右に回りながら移動しているからです。

そこである目的の位置まできたら、物体を止める処理(プログラムの停止)を追加する必要があります。

stop();

見ても意味合いがあかると思いますが、ストップさせます。
ではこのストップを目的の位置まできたら、止まりないさいと言うプロブラムを[1-2]のスクリプトに追加します。

Continue reading

Home > Tags > MovieClip

Feeds
Meta

Return to page top