ランダムボックス
オブジェクトにマウスオーバーすると大きさや角度などを変えながら動く箱が表示されるというアニメーションです
解説はつづきから
新規ファイル作成
ステージ設定はサイズを400×300、フレームレートは30に
ステージの中央に箱を生成する基点となるオブジェクトを作成
シンボル化して、インスタンス名をobjに
新規シンボルを作成
ActionScriptに書き出しにチェックを入れて、クラス名をBoxに
サイズ10×10、線の太さ2pxの矩形を描く
色は任意
シーン1に戻り、新規レイヤーを追加し、ActionScriptを記述
//タイマー設定とタイマーイベント追加 var timer:Timer = new Timer(20, 0); timer.addEventListener(TimerEvent.TIMER, createBox); //objにマウスオーバー、マウスアウトのイベント追加 obj.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler); obj.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler); function mouseOverHandler(e:Event):void { //マウスオーバーでタイマー開始 timer.start(); } function mouseOutHandler(e:Event):void { //マウスアウトでタイマーリセット timer.reset(); } //boxを作成する設定 function createBox(e:Event):void { var box:Box = new Box(); //boxの初期位置、大きさ box.x = obj.x; box.y = obj.y; box.scaleX = box.scaleY = Math.random() * 2; //色の設定 var myColor:ColorTransform = new ColorTransform(); myColor.color = 0xffffff * Math.random(); box.transform.colorTransform = myColor; //boxがX,Y方向へ動く速度 box.xspeed = Math.random() * 12 - 6; box.yspeed = Math.random() * 9 - 4.5; //boxが透明になる速度 box.alphaSpeed = -(Math.random() * 0.1); //boxの大きさの変わる速度 box.scaleSpeed = Math.random() * 0.05; //boxを最背面に追加 addChildAt(box,0); //boxが動くイベント追加 box.addEventListener(Event.ENTER_FRAME, animate); } //boxの動き設定 function animate(e:Event):void { //型変換 var box = e.target as MovieClip; //createBox内で設定した各種値を適用 box.x += box.xspeed; box.y += box.yspeed; box.alpha += box.alphaSpeed; box.scaleX += box.scaleSpeed; box.scaleY += box.scaleSpeed; //角度ランダムに box.rotation = Math.random() * 360; //透明になったらboxとイベント削除 if (box.alpha < 0) { box.removeEventListener(Event.ENTER_FRAME, animate); removeChild(box); } }
これでムービープレビューすると以下のようになってるかと思います
以上、ランダムボックスの作り方でした