アプリ版:「スタンプのみでお礼する」機能のリリースについて

勉強しながら四苦八苦しております。

今現在
背景を5つある画像の中からランダムに表示→数十秒ごとにその5つの画像からランダムに切り替え というものをなんとか完成させました。

それでこのランダムに切り替えるときに画像をフェードさせたいのですがどうも上手くいきません。。

// 画像を読み込む 
num =Math.floor(Math.random() * 5);
loadMovie(num + ".jpg", "img");

//何秒ごとに画像を切り替えるか
setInterval(move,20000);

//切り替える画像をランダムに表示
function move():Void {
aaa =Math.floor(Math.random() * 4);
loadMovie(aaa + ".jpg", "img");
}

//以下を加えるとエラーになってしまいます。
onClipEvent(load) {
flg = -1;
myspd = 5;
}

onClipEvent(enterFrame) {
tmp = this._alpha+(myspd*flg);
if (tmp>100 {
tmp = 100;
flg = -1;
} else if (tmp<0) {
tmp = 0;
flg = 1;
}

this._alpha = tmp;
}
どなたか分かるようでございましたらご教示下さい。。。
ヒントだけでもけっこうですので。

A 回答 (1件)

>> //以下を加えるとエラーになってしまいます。



エラーは,

 if (tmp>100 {

の部分で,閉じ括弧「)」が抜けているだけです。
その他はエラーではないでしょう。
エラーではなくて,思った通りにならない動かないだけではないのでしょうか。
閉じ括弧さえちゃんと書けばFlash としては,書いている通りに正常に動作しましたよ。


正常に動作しましたが,そもそも何をしたいのでしょうか。
「写真をフェードインアウト」 と 「ランダムに読み込む」が,
全く別物で好き勝手に動いているだけです。
何をしたいのか,よくわかりませんが,
しようとされていることを予測すると,
こんな感じでしょうか↓?

まず,大切なことは,
ムービークリップ img のスクリプトを全て消してください。

そして,フレームに次のようなスクリプトを書きます(コピペ)。

-----------------------------
var myspd = 5;
var flg = 0;

// 画像を読み込む function の定義
function loadJPG():Void {
num = Math.floor(Math.random()*5);
loadMovie(num+".jpg", "img");
}

// 画像を読み込む function の実行
loadJPG();

//何秒ごとに画像を切り替えるかを設定
setInterval(move, 10000);
// 指定時間後にフェードアウト
function move():Void {
flg = -1;
}

_root.onEnterFrame = function() {
tmp = _root.img._alpha+(myspd*flg);
if (tmp>100) {
tmp = 100;
// アルファが100より大きくなったら固定
flg = 0;
} else if (tmp<0) {
tmp = 0;
flg = 1;
// アルファが0より小さくなったらロード
loadJPG();
}
_root.img._alpha = tmp;
};
-----------------------------

なるべく書かれているスクリプトを尊重して(残せる部分は残して)書き替えました。
細々している点を一々指摘していたら,
紙面が何枚あっても足りなくなりますから致命的な部分だけを書いて置きます。

おそらく,アルファが 0 のときに次のJPEGを読み込みたいのではないかと推測しました。
そのような場合は,
読み込むムービークリップ img に,
onClipEvent (load) {} で
flg = -1;
を指定してはいけません。

onClipEvent (load) は,
そのムービークリップが読み込まれたときに実行されます。
つまり,JPEGが読み込まれるたびに実行されます。
つまり読み込むたびにアルファがマイナスに向かいます。


だから,この onClipEvent (load) 内を,フレームに避難させました。
すると,onClipEvent (enterFrame) {} の方がやたらややこしくなります。
それで,onClipEvent (enterFrame) {} の方も _root. に避難させました。

_root のフレームのスクリプトではなく,
他のムービークリップに書いても良いですよ。
読み込む本人であるムービークリップ img に,
 onClipEvent (load) {} を書く場合は注意してください。
こんな現象も起きます↓。

「onClipEvent(load)で自分自身にloadMovieしてはいけません」
http://f-site.org/articles/2003/10/27232817.html
    • good
    • 0
この回答へのお礼

どうもありがとうございます。
まさにこれが私がやりたかったことでした。
こんな未熟者にご指導頂きありがとうございました。
もっと精進したいと思います。。。

お礼日時:2006/08/09 23:40

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