dポイントプレゼントキャンペーン実施中!

Flash lite 1.1で、指定範囲内をランダムに動き回る待ち受け画面を作成したいです。
動作イメージは以下の様な感じなのですが・・・

・ステージサイズは『240×320』
・ムービークリップを動かしたい範囲は上下中央の『220×220』
・220×220の範囲内を、
 雲の形のムービークリップがフワフワ浮かびながらランダムに移動する
・雲は、220×220の範囲からはみ出ない

for文を使用し、
指定した数値内を移動させるという形になるのかなぁ・・・と思うのですが、
スクリプトの記述方法が分からず、途方に暮れております・・・。

知識のある方がいらっしゃいましたら、お力添え頂けますと大変嬉しいです。
宜しくお願い致します。

A 回答 (1件)

> フワフワ浮かびながらランダムに移動する



「フワフワ」はFlashの問題ではありませんよね。
また そもそも雲は
「ほぼ一定の速度でほぼ同じ方向に動き続けるもの」です。
ランダムで同じ範囲内をフワフワ動くという物理法則に反したイメージをお持ちでしたら
その法則に従った動きをご自身で作ってみてください。



=== 以下はFlash の話 ======

> for文を使用し
> 指定した数値内を移動させるという形になるのか

PC用のFlash では ActionScript で物を移動させる場合
ENTER_FRAME系 [onClipEvent(enterFrame) など] や
setInterval などで一定時間ごとに随時座標を指定して物を動かします。
その場合は for文 なども入ると思います。

しかし Flash lite 1.1では
ENTER_FRAME系 のスクリプトは存在しないため
例えば フレーム1 と 2 をループ再生させて
そのループ再生で 「一定時間ごとに随時座標を指定」 する必要があります。

ここでもし メインのタイムラインで フレーム1 と 2 のループ再生をさせた場合
他のアニメーションなどが作成できなくなります。

したがって フレーム1 と 2 のループ再生は
ムービークリップ内のタイムラインを使ってするべきということになります。
そして
どうせムービークリップ内のタイムラインを使うのでしたら
雲をムービークリップにして雲内タイムラインを使うのが近道ということになります。
その雲をコピペで増やせば良いだけです。
ですから普通 for文は使わないでしょう。



***以下は作成方法例***

ステージ上に「雲の絵」を描きます。
その絵を選択してムービークリップに変換しますが
このとき基準点を中央にしておくとします。

その雲ムービークリップ内のタイムラインの編集に入ります。

雲ムービークリップ内の雲の絵のレイヤーを 2フレーム に伸ばし
その雲レイヤーとは別にActionScript用レイヤーを作って
フレーム1 と 2 を空白キーフレームにします。

そのフレーム1のスクリプト例

------------------
if (_x <= 10+_width/2) {
my_x = random(11)/5;
} else if (_x >= 230-_width/2) {
my_x = -random(11)/5;
} else {
my_x = (random(21)-10)/5;
}
_x += my_x;

if (_y <= 50+_height/2) {
my_y = random(11)/5;
} else if (_y >= 270-_height/2) {
my_y = -random(11)/5;
} else {
my_y = (random(21)-10)/5;
}
_y += my_y;
------------------


フレーム2のスクリプト

-------------
gotoAndPlay(1);
-------------


※注釈
 my_x,my_y:変数
 _x:x座標 _y:y座標
 _width:横幅 _height:高さ
 random():random関数
 (Mathクラスのrandomメソッドではない)


これで雲ムービークリップ内がループ再生されるため
1フレーム進む時間毎に毎回,フレーム1 のスクリプトが実行されます。
自作版 ENTER_FRAME です。


Flash Lite 1.x は簡単な関数しか無く 制約が厳しい分
普通の Flash よりはるかに手間と頭と気を使いますよ。
 
「Flash lite 1.1で、指定範囲」の回答画像1
    • good
    • 0
この回答へのお礼

お忙しい中、ご丁寧に回答して頂き、
どうもありがとうございます。

今日1日、スクリプトを試行錯誤しまして、
なんとか想定の動作を実現する事が出来ました。
(全く美しい記述ではないのですが・・・)

回答者様のスクリプトは
自分では思いつかない書き方でしたので、
非常に参考になりました。
わざわざ画像も付けて下さって、
本当にありがとうございます。

自力で的確な記述が出来る様に、
もっともっと勉強していかなければと痛感しております。

大変お手数をお掛け致しました。

お礼日時:2010/06/04 21:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!