前にも質問させていただきましたが
どうしても解決せず・・・
再度質問させていただきます。
Flashに関しては完全な初心者なんですが
とある事情により、明日までにスライドショーを作成しなくてはいけません。
お力添えいただけないでしょうか。
--
使用しているのは
WindowsXP Flash8 Professionalです。
今回はスライドプレゼンテーションを使って作成しています。
--
単純にやりたいことは
「○秒間、写真を表示させた後に、トランジションを使ってフェードアウト」
なんですが、○秒間静止画を表示させるための、スクリプトがわかりません。
前に、こちらでsetIntervalのスクリプトを教えていただいたのですが、指定した時間表示してくれるのですが、それがループしてしまうみたいで、点滅しているようにしながらフェードアウトしてしまうのです。
他にも調べて実行してみましたが
どうにもうまくいかず・・・
どのようなアクションスクリプトを書けば
そのように実行してもらえるのでしょうか。
今書いているスクリプトを載せておきます。
(2秒間表示させたあと、2秒間の間隔で点滅しながら、フェードアウトしてしまうスクリプトです。)
具体的に教えていただければ幸いです・・・
お力添えください。
何卒よろしくお願いします。
No.3ベストアンサー
- 回答日時:
前回
http://okwave.jp/kotaeru.php3?q=2186392 の、#2で回答した者です。まず、スライドプレゼンテーションで作る時は、
_root.gotoAndPlay( ○○ );
というアクションは使ってはいけません。スライドが正しく進行しなくなります。
理由はありますが、お急ぎとのことですのでここでは割愛させていただきます。
一定時間ごとにスライドを切り替えるスクリプトは、大体、No.2186392 でご紹介した通りです。
ただ、トランジションは”スライドが表示される時”ではなく”次のスライドに移る時”だったのですね。
自前でスライドショーを作る時は多少は融通が利くのですが、スライドプレゼンテーションではこのあたりが少々面倒です。
そこで相談なのですが、
・表示される時、イン(フェードインなど)のトランジション
・スライドを2秒表示
・切り替わる時にアウト(フェードアウトなど)のトランジション、同時に次のスライドがインのトランジション付きで表示される
という演出はいかがでしょうか。
要するに、スライドが切り替わる時は前のスライドと次のスライドでクロスフェードになる形です。
これですと、例えばイン・アウトのトランジションがともに2秒で静止時間も2秒だとすると、スライド1枚あたりの表示時間はトータルで6秒ということになります。
すると、自前で作るのは setInterval で6秒ごとにスライドを切り替える関数を呼び出す部分だけで、演出であるインとアウトのトランジションはビヘイビアで簡単に設定できます。
------------------------------------------------------------------
まず、写真を配置したスライド(子のスライド)全てにトランジションのスクリプトを設定します。
トランジションは「ビヘイビア」で設定します。
ステージの横に、スライドのリスト(スライドの構成図のようなもの)が表示されているかと思います。
写真を配置したスライドを選び、「ビヘイビア」パネルで「スクリーン」→「トランジション」と進んで、トランジションを設定してください。
この作業を、1枚のスライドにつき2回繰り返します。
トランジションのビヘイビアを選ぶと、「トランジション」というパネルが開きます。
右側に速さ等を指定する項目があり、この1番上に”方向”という項目があります。
1つは”イン”、もう1つは”アウト”に設定してください。
”長さ”は両方とも同じ秒数にします。
「ビヘイビア」パネルに、設定されたトランジションのアクションのリストが並びます。
このリストの、左側の項目(”イベント”の項目)を見てください。
最初は” reveal ”になっています。
” reveal ”と書かれている部分をクリックすると、リストが表示されて、トランジションを実行するイベント(タイミングのようなもの)を選択できるようになります。
”イン”のトランジションのビヘイビアは” reveal ”のままで構いませんが、”アウト”のトランジションのビヘイビアは” hide ”に変更してください。
これで、スライドが表示される時にイン、次のスライドに切り替わる時にアウトのトランジションが実行されるようになります。
この作業を、全ての子スライド(デフォルトでは”スライド○○”という名前が付いています)に行ってください。
なお、既に allTransitionsOutDone で次のスライドに進むためのビヘイビアが設定されているようですが、先に進むスクリプトは自前で用意しますので、これは削除してください。
「ビヘイビア」パネルでビヘイビアを選び、”-”のボタンを押すと削除できます。
**************************************
自前で用意するスクリプト(一定時間ごとにスライドを切り替えるスクリプト)は、最も根底にあたるスライドに書きます。
スライドのリストで、最も上にあるスライドを選択した状態で「アクション」パネルを開いてください。
このスライドは、デフォルトでは”プレゼンテーション”という名前になっています。
「アクション」パネルは、「ウィンドウ」メニュー→「アクション」、または「プロパティ」パネル右上の矢印のアイコンをクリックすると開けます。
「アクション」パネルの上部に「▼ アクション - スクリーン」と表示されていることを確認して、次のようなスクリプトを書きます。
見辛くて申し訳ありませんが、コピーしてそのまま使えます。
onClipEvent(load)
{
//表示するスライドの番号を保持
slide_no = 0;
//スライドを切り替える関数
//この関数は一定時間ごとに呼び出される
function Slide_Change()
{
//次のスライドを表示
//最後まで表示したら最初に戻る
slide_no = ( slide_no + 1 ) % numChildSlides;
gotoSlide( getChildSlide( slide_no ) );
}
//6秒ごとにスライドを切り替える関数を呼び出す
//(↑INトランジション2秒+スライド表示時間2秒+OUTトランジション2秒)
timer_id = setInterval( Slide_Change , 6000 );
}
**************************************
スライドをループさせず最後の写真で止める場合は、上記の代わりに次のスクリプトを書いてください。
onClipEvent(load)
{
//表示するスライドの番号を保持
slide_no = 0;
//スライドを切り替える関数
//この関数は一定時間ごとに呼び出される
function Slide_Change()
{
//最後のスライドだった場合は停止
if( slide_no >= numChildSlides - 1 )
{
//タイマーを削除
clearInterval( timer_id );
}
//次のスライドがある時は次を表示
else
{
slide_no++;
gotoSlide( getChildSlide( slide_no ) );
}
}
//タイマーをセット
//6秒ごとにスライドを切り替える関数を呼び出す
//(↑INトランジション2秒+スライド表示時間2秒+OUTトランジション2秒)
timer_id = setInterval( Slide_Change , 6000 );
}
***************************
スライドをループさせない場合、最初のスライドでインのトランジションが不要でしたら、イベント” reveal ”のビヘイビアを削除するとインのトランジションも消えます。
ただし、最初のスライドだけは4秒間表示されることになります。
実際はどのスライドも一律6秒間表示されているのですが、トランジションが抜けると、その分だけ、どうしても長く見えてしまいます。
スライドを切り替える間隔を変える時は、
timer_id = setInterval( Slide_Change , 6000 );
↑の、6000 の部分を変更してください。
setInterval はミリ秒ですので、イン・アウトのトランジションにかかる秒数+スライドの表示時間に 1000 を乗算した値です。
前回の質問もですが、今回も、わかりづらかったようでごめんなさい。
そして丁寧な解説本当にありがとうございます。
先ほどチャレンジしてみたところ、
うまくいきました!!!
本当にありがとうございます。
自作で1から作る時間がなく今回は頼りきりになってしまったんですが
アクションスクリプトについて
少しは勉強しないといけないと思いました・・・
本当にありがとうございます!!!
No.2
- 回答日時:
的外れならごめんなさい。
フレームレートを考慮すればスクリプトなしで実現できそうな気がします。
たとえば、フレームレートが12fpsなら、fpsは「frame per secound」つまり1秒間に12フレームなわけですから、秒間なら24フレームです。
24フレーム表示してフェードアウトしstop();するムービークリップを作れば実現できそうな気がします。
この回答への補足
ありがとうございます。
それも実はためしてみたのですが、うまくいかなかったのです・・・
もしかすると根本から間違えているのかもしれません。
24フレーム表示して、その後のフレームでトランジションを実行してみたのですが、なぜかうまくいかず・・・
No.1
- 回答日時:
質問者のmaicocoです。
800字を超えてしまったのでここにかきます。
onClipEvent (load) {
stop();
ID1 = setInterval(function () { _root.gotoAndPlay("2");clearInterval(ID1);}, 2000);
}
on (reveal) {
// Transition behavior
if (!eventObj.target._isSlide || (eventObj.target._isSlide && eventObj.target.currentSlide)) {
mx.transitions.TransitionManager.start (eventObj.target,
{type:mx.transitions.Fade,
direction:1, duration:6, easing:mx.transitions.easing.None.easeNone,
param1:empty, param2:empty});
eventObj.target.__transitionManager._triggerEvent = eventObj.type;
}
// End Transition behavior
}
on (allTransitionsOutDone) {
// GoTo Next Screen behavior
var screen = null;
var target = this;
while((screen == null) && (target != undefined) && (target != null))
{
if(target instanceof mx.screens.Screen)
{
screen = target;
}
else
{
target = target._parent;
}
}
if(screen instanceof mx.screens.Slide)
{
screen.rootSlide.currentSlide.gotoNextSlide();
}
// End GoTo Next Screen behavior
}
--
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelvbaでスライドショーを作りたい 2 2023/04/20 14:32
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- 日本語 「に」について 9 2022/10/25 16:32
- UNIX・Linux ubuntuサーバーを久々に再起動したらネットにつながらなくなった。 1 2022/06/06 16:21
- PostgreSQL postgreSQLをbashで実行する際に「MORE」表示をなくす方法 1 2023/05/08 21:42
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Visual Basic(VBA) VBAで早押しゲームを作りたい 4 2022/05/12 13:46
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SH-02 着うたを作成したい
-
ガラケーからPCへの写真の取り込み
-
e-taxで送信ファイルの拡張子が...
-
A4の紙に印刷されている文字を...
-
個別に違う添付ファイルを付け...
-
Access2016のExcelインポートの...
-
PC内で速度を遅くした音源をCD...
-
クリッカブルマップ(イメージ...
-
stdio.hの中身
-
エアコンの冷媒 R410Aの重...
-
GIMP separate+プラグイン クラ...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
2枚、マイクロSDカードを入...
-
CSVを取り込んで、画像を表示す...
-
スマホでtxtファイルを編集する...
-
情けない話ですが成田エクスプ...
-
suzukaが起動しません
-
ASPのエディター
-
おもしろフラッシュのサイト名...
-
microsdカード保存物をPCで見る...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
個別に違う添付ファイルを付け...
-
e-taxで送信ファイルの拡張子が...
-
エクセルで「特定の文字を含む...
-
スマホでtxtファイルを編集する...
-
複数のブックを新しいブックのS...
-
A4の紙に印刷されている文字を...
-
iPhoneの内蔵の記憶媒体は、HDD...
-
ビデオファイルのプロパティの...
-
エアコンの冷媒 R410Aの重...
-
ガラケーからPCへの写真の取り込み
-
拡張子「.IDJ」を、windo...
-
Fortniteのクラッシュについて
-
2枚、マイクロSDカードを入...
-
VBA:カウンターの i の値が開放...
-
ファイル数と合計サイズの取得方法
-
stdio.hの中身
-
TextBoxにフォーカスを与えると...
-
PC内で速度を遅くした音源をCD...
-
リストビューの選択状態を取得...
-
GIMP separate+プラグイン クラ...
おすすめ情報