なんか、もっそい普通のことですが、なかなかつまずいたので覚書。
ステージ上にインスタンス名「btn〇」の名前をつけたボタンのムービークリップを配置している状態です。
効果はTweenerでつけています。
効果説明
ロード時のy座標を配列に入れておいて、マウスオーバー時にそれぞれのムービークリップを「y座標ー20」しています。
その際ブライトをあげてちょっと明るくなるようになっています。
ボタンが一列なら、y座標の位置取りなどは必要ありません。
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts;
import caurina.transitions.properties.FilterShortcuts;
import caurina.transitions.properties.DisplayShortcuts;
ColorShortcuts.init();
FilterShortcuts.init();
DisplayShortcuts.init();
var url:Array = ["http://www.google.co.jp/","http://www.yahoo.co.jp/","http://blog.bgs-works.com", "http://jp.msn.com/", "http://www.apple.com/jp/"];
var yArray:Array = new Array;
var upArray:Array = new Array;
for (var u:int =1; u<=5; u++){
/* ロード時のyの座標 */
yArray.push(this["btn"+u].y);
/* 動かしたい数を引いたy座標 */
upArray.push(this["btn"+u].y-20);
}
for(var t:int = 1; t<=5; t++){
this["btn"+t].addEventListener(MouseEvent.ROLL_OVER, rollOverListener);
this["btn"+t].addEventListener(MouseEvent.ROLL_OUT, rollOutListener);
this["btn"+t].addEventListener(MouseEvent.CLICK, onClickListener);
this["btn"+t].buttonMode = true;
}
/* 文字列を分割するための関数 */
function getNum(_str:String){
var str:String = _str;
/* 分割する場所の指定(最初の文字からいくつめで、いくつまで分割するのか) */
var key:String = str.substr(3.1);
var keyNum:Number = Number(key);
return keyNum-1;
}
function rollOverListener(e:MouseEvent):void{
var _num:Number = getNum(e.target.name);
Tweener.addTween(e.currentTarget, {y:upArray[_num], time:2, transition:"easeOutElastic",_brightness:0.4});
}
function rollOutListener(e:MouseEvent):void{
var _num:Number = getNum(e.target.name);
Tweener.addTween(e.currentTarget, {y:yArray[_num], time:0.7, transition:"easeOutQuint",_brightness:0});
}
function onClickListener(e:MouseEvent):void{
var _request:URLRequest = new URLRequest(url[ getNum(e.target.name) ]);
navigateToURL(_request);
}
タグ:AS3, AS3, button, Flash, for, script



コメントはまだありません。