D0804261 一定時間が経ったら、画像が切り替わるようにしたい
Name sayo
Date 2008年04月26日 (土) 09時58分
Message こんにちわ。フラッシュ初心者です。
以下のメインビジュアルのようなFlashを作りたいんですが、
初心者でも作成可能でしょうか。

画像はできれば、外部から読みたいと思っています。
また、一定時間が経ったら、画像が切り替わるようにしたいのです。

http://www.murata.co.jp/

参考URLでも良いので、よろしくお願いします。
Response 01
2008年04月26日 (土) 15時03分> joy 
sayoさん、
今日は。
2枚の画像写真なので、それに特化し、できるだけ、シンプルにして、サンプルを作ってみました。
murataと少し、動きが異なる所もあるかもしれませんが、ご容赦下さい。

1)写真を2枚用意し、それぞれ、1.jpgと2.jpgと名づけ、swfと同一階層(同一フォルダー内)においておきます。

2)写真(サンプルでは、500×375)と同サイズに、ステージサイズを作り、同じサイズで、図形を描き、左上基準で、MovieClip化し、インスタンス名を、mcとしましょう。

3)写真を縮小したものを、表示させるために、2)のmcのレイヤーの上にレイヤーを作り、100×75の図形(20%に縮小)を描き、MovieClip化します。其々、mc1とmc2とインスタンス名をつけます。同様に、このレイヤーにENTERボタンを配置します。サンプルでは、コンポーネントのボタンを配置してますが、自分で作ってもいいでしょう。インスタンス名を、enter_btnとしました。

4)以上で、準備ができたので、スクリプトを記載しますが、

・シーンの第一フレームの一番上に、scriptレイヤーを作り、

this.stop();
clearInterval(Timer2);//第二フレームで作った、Timer2というsetIntervalをクリアしておく。
クリアしないと、第一フレーム再生中に、Timer2が効いてしまいます。
mc1._xscale = mc1._yscale=mc2._xscale=mc2._yscale=20;/*写真を20%に縮小して、読み込むので、mc1とmc2のスケールを20%とする*/

mc.loadMovie("1.jpg");//mcに、1.jpgを読み込む
mc1.loadMovie("1.jpg");//20%縮小して、mc1に読み込む
mc2.loadMovie("2.jpg");


function Next() {//setIntervalで呼び出す、カスタム関数を定義、呼び出されたら、次のフレームに移動して、停止
nextFrame();
}

Timer1 = setInterval(Next, 10000);//10秒おきに、Next()関数を呼び出す

enter_btn.onRelease = function():Void {//このボタンを押したら、以下のurlにリンク
getURL("http://www.murata.co.jp/", "_blank");
};

・第二フレームのscriptレイヤーには、

clearInterval(Timer1);//第一フレームで、作った、setIntervalをクリアしておく。クリアしておかないと、第二フレーム再生中に、Timer1が効いてしまいます。

mc.loadMovie("2.jpg");//2.jpgを読み込む

function Prev(){
prevFrame();
}

Timer2=setInterval(Prev,10000);//10秒おきに、Prev();を実行する

・mc1とmc2に対しては、直接記載するクリップアクションで、以下を記載する。
■mc1に対して、
onClipEvent (load) {
this._alpha = 40;
Check = false;//制御変数の初期値は、false
}

onClipEvent (enterFrame) {
if (Check) {//Check==trueなら、目標接近スクリプトで、_alpha値 100に向かって、接近する。5は速度調整値で、大きくすれが、ゆっくりとなります。
this._alpha += (100-this._alpha)/5;
}else{
this._alpha+=(40-this._alpha)/5;//初期値の40に向かって、戻る
}
}

on (rollOver) {
Check=true;//ロールオーバーすると、Checkをtrueとする
this._parent.mc._alpha=100;//ロールオーバーすると、100とする
}

on (rollOut, releaseOutside) {
Check=false;
this._parent.mc._alpha=50;
}

on (release) {
_root.prevFrame();//押されたら、次のフレームに移動して、停止
}

-mc2に対して

onClipEvent (load) {
this._alpha = 40;
Check = false;
}

onClipEvent (enterFrame) {
if (Check) {
this._alpha += (100-this._alpha)/5;
}else{
this._alpha+=(40-this._alpha)/5;
}
}

on (rollOver) {
Check=true;
this._parent.mc._alpha=100;
}

on (rollOut, releaseOutside) {
Check=false;
this._parent.mc._alpha=50;
}

on (release) {
_root.nextFrame();//押されたら、前のフレームに移動して、停止
}


以上ですが、枚数が多い場合のスライドショーに関しては、憲ちゃんさんの有名な、
■Flash5による外部JPEGを使った自動スライドショー

daniwellさんやTOYAMさんのサンプルが参考になると思います。
■外部JPGのスライドショーに制御ボタンを付けるには?
http://homepage2.nifty.com/joys/answers/murata/murata.html
Response 02
2008年04月26日 (土) 15時14分> joy 
追記です。

写真読み込み用のmcに対する、スクリプトの説明が抜けてました。

■mcに対して、クリップアクションで、以下のように記載してます。

onClipEvent (load) {
this._alpha=5;
}
onClipEvent (enterFrame) {
this._alpha+=(100-this._alpha)/15;//15は速度調整値なので、大きくすると、ゆっくりと_alpha値が100に向かって変化します。
}

TOYAMAさんが良く、お使いのTweenクラスを使う方法もありますが、ここでは、基本のenterFrameを使いました。Tweenクラスに興味がある場合は、検索で、Tweenと入れれば、TOAYAMさんのサンプルも入手できると思います。
http://homepage2.nifty.com/joys/answers/murata/murata.html

このページの先頭へ