- 2009-09-04 (金) 14:49
- lesson1
クリックでフェードを繰り返し、ダブルクリックでフェードの繰り返しを停止
[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);
}
クリックされたらENTER_FRAMEのイベントリスナーを登録して、プログラム(imgAplha)を動かすみたいな感じです。
imgAlphaのプログラム関数では、ムービークリップを「alpha = 0」から「alpha = 1」の再生させ、表示、非表示を繰り返す条件分岐をしています。
//アルファプログラム関数
function imgAlpha(event:Event){
//img_mc.alpha += alphaX;
img_mc.alpha -= alphaX;
//条件分岐
if (img_mc.alpha > 1 || img_mc.alpha < 0){
alphaX *= -1;
}
}
透過速度としてalphaXを変数に置き換えてます。
ダブルクリックした時の処理としては、ダブルクリックされたら、ムービークリップを表示させENTER_FRAMEのイベントリスナーの登録を解除させます。
//ダブルクリック宣言
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 > 1 || img_mc.alpha < 0){
alphaX *= -1;
}
}
//ダブルクリックさらたイベントリスナー登録
function stopAlpha(event:MouseEvent):void{
//表示してイベントリスナーを解除
img_mc.alpha = 1;
img_mc.removeEventListener(Event.ENTER_FRAME,imgAlpha);
}
- Newer: ムービークリップをボタンとして使う[2-1]
- Older: フェードインするムービークリップ[1-8]
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.addchild.net/as3-beginner/ls1/175.html/trackback
- Listed below are links to weblogs that reference
- クリック制御でフェードを繰り返すムービークリップ[1-9] from ADD CHILD = AS3