ActionScript3.0でランダムに落下するボールを作成
ActionScript3を使用して、ランダムに落下するボールを作成します。
落下を表現するには通常「イージング」を使用したり、前回の投稿「クリックするとランダムに移動するBOX」にあるTweenerを使う方法があります。
今回はそれらを使用せず、もっと簡単にできる方法を紹介します。
ボールグラフィックの作成
まず最初に画面サイズですが、落下がわかるように300×400の縦長にします。
その後に数値をランダムにする設定をします。
ransu設定
落下するボールの色、サイズ、出現位置をランダムにするために必要な設定をします。
1.
function
ransu(a):Number {
2.
var
hensu = Math.random()*a;
3.
return
hensu;
4.
}
これは前回のランダムに移動するBOXと同じ設定です。
やっとボールグラフィックの作成
これも前回のランダムに移動するBOXの時と同じで「Sprite」でグラフィックを作成します。
「drawCircle」を設定することで円ができます。ちなみに四角は「drawRect」です。
1.
var
ball =
new
Sprite();
2.
ball.graphics.beginFill(ransu(1) * 0xFF0000);
//色の設定
3.
ball.graphics.drawCircle(ransu(300), -200, ransu(50))
//円のグラフィック設定
4.
addChild(ball);
drawCircleの()内を解説しますと、(X軸の位置, Y軸の位置, サイズ)となります。
落下の設定
物が落下するときは一定の速度で落ちるのではなく、だんだん早くなりますのでその設定が大事です。
1.
var
yvel:Number = 4;
2.
var
yAcc:Number = 1;
3.
4.
addEventListener(Event.ENTER_FRAME, onLoop,
false
, 0,
true
);
5.
function
onLoop(evt:Event):
void
{
6.
ball.y += yvel;
7.
yvel += yAcc;
8.
}
上記のソースを解説しますと、addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true);の設定はボールグラフィックが登場したときにイベントを発生させます。
function onLoop(evt:Event):voidはイベントをループさせて実行させます。
ball.y += yvel;はボールグラフィックに変数yvelの値「4」を代入します。+=にすることでY軸に「4」ずつボールグラフィックにプラスしています。
yvel += yAcc;を設定することで「4」の値をもつ変数yvelに「1」を代入します。この設定でyvelは「4」「5」「6」「7」…と増えていきます。これでボールグラフィックは加速してY軸を移動します。
実行するタイミングの設定
今までのソースでもランダムにボールが落下しますが、読み込み毎にしか実行されないのでボタンの設定をします。
ボタンのムービークリップの作成
Photoshopでボタンを作成して、それをFlashのライブラリに読み込ませます。そのボタンをムービークリップにします。そして、ライブラリ内で出来たムービークリップを右クリックしてリンケージ設定を行います。
「ActionScriptに書き出し」にチェックを入れ、クラス名を「Btn」にします。
ActionScriptでのボタンの設定
先程作成したボタンムービークリップをステージに配置します。その設定もActionScriptで行います。
1.
var
btn:MovieClip =
new
Btn();
2.
btn.x = 100;
//BtnムービークリップのX軸の位置
3.
btn.y = 350;
//BtnムービークリップのY軸の位置
4.
btn.buttonMode =
true
;
//リンクカーソル設定
5.
addChild(btn);
最後の設定
作成したボールグラフィックの実行タイミングを設定すれば終わりです。
ボタンをクリックした際にランダムにボールが落下してくれるようにします。
1.
btn.addEventListener(MouseEvent.CLICK, FallBall);
2.
3.
function
FallBall(evt:Event) :
void
{
4.
}
ボタンムービークリップが押された際に、「FallBall」の{}に記述したソースを実行します。
ここにはボールグラフィックと落下設定のソースを記述します。
全てのソース
今まで書いたことをまとめると下記のソースになります。
01.
var
btn:MovieClip =
new
Btn();
02.
btn.x = 100;
//BtnムービークリップのX軸の位置
03.
btn.y = 350;
//BtnムービークリップのY軸の位置
04.
btn.buttonMode =
true
;
//リンクカーソル設定
05.
addChild(btn);
06.
07.
08.
btn.addEventListener(MouseEvent.CLICK, FallBall);
09.
10.
function
FallBall(evt:Event) :
void
{
11.
var
ball =
new
Sprite();
12.
ball.graphics.beginFill(ransu(1) * 0xFF0000);
//色の設定
13.
ball.graphics.drawCircle(ransu(300), -200, ransu(50))
//円のグラフィック設定
14.
addChild(ball);
15.
16.
var
yvel:Number = 4;
17.
var
yAcc:Number = 1;
18.
19.
addEventListener(Event.ENTER_FRAME, onLoop,
false
, 0,
true
);
20.
function
onLoop(evt:Event):
void
{
21.
ball.y += yvel;
22.
yvel += yAcc;
23.
}
24.
}
25.
26.
function
ransu(a):Number {
27.
var
hensu = Math.random()*a;
28.
return
hensu;
29.
}
サンプル
- Web-Parkのホーム >
- Flash >
- ActionScript3.0でランダムに落下するボールを作成
Warning: count(): Parameter must be an array or an object that implements Countable in /home/markcrest/web-park.org/public_html/wordpress/wp-includes/class-wp-comment-query.php on line 405
COMMENT PLEASE!!
トラックバック
- 「ActionScript3.0でランダムに落下するボールを作成」のトラックバックURL
Warning: Use of undefined constant display - assumed 'display' (this will throw an Error in a future version of PHP) in /home/markcrest/web-park.org/public_html/wordpress/wp-content/themes/default/single.php on line 105
http://web-park.org/flash/fallball.html/trackback