回答受付中の質問
FlashLite1.1を利用したスライドショー
お世話になります。
FlashLite1.1を利用したスライドショーの制作を依頼されました。
やりたいことは、外部のテキストデータに書いた画像を
読み込み、その画像ごとにリンク先を替えたい。
(全て外部テキストから指定)
5~8秒程度で画像が切り替わるスライドショーにしたい。
ということでした。
が私がわかるFlashは8以降で、FlashLiteはまったく無知です。
Flash4までバージョンを落とせば・・。
というの記事を見かけたのですが、4も使ったことがなく・・・。
丸投げで申し訳ないのですが、どなたかご教授頂ければと思います。
宜しくお願い致します。
投稿日時 - 2010-03-17 11:55:36
4人が「このQ&Aが役に立った」と投票しています
回答(2件中 1~2件目)
#1です。
> 直接フォルダに保存してある○○.jpgなどを
> 読み込ませることは可能でしょうか。
#1で書きました通り,JPEG をロードさせることは無理ですが,
JPEG をFlash作成ソフトのステージ上に読み込んで,
SWF にパブリッシュしたものでしたらロード可能です。
ファイルを次のように用意したとします。
任意のフォルダ
├○○.swf (メインのSWF)
├pic1.swf (ロードするSWF)
├pic2.swf ( 〃 )
├pic3.swf ( 〃 )
├pic4.swf ( 〃 )
└pic5.swf ( 〃 )
「○○.swf (○○.fla)」 のステージ上に外部SWFをロードするためのムービークリップを作成し
そのムービークリップに例えば「loader_mc」というインスタンス名を付けたとします。
「次のSWF」をロードするボタン自体には例えば次のように書きます。
------------
//この(次へ)ボタンを押したときに実行
on (press) {
//もし 変数num の値が 5 未満であれば
if (num<5) {
//num に 1 を加算
num++;
} else {
//それ以外は num を 1 にする
num = 1;
}
//loader_mc に pic○.swf をロード
loadMovie("pic" add num add ".swf", "loader_mc");
}
------------
「前のSWF」をロードするボタン自体には例えば次のように書きます。
------------
//この(前へ)ボタンを押したときに実行
on (press) {
//もし 変数num の値が 5 未満であれば
if (num<5) {
//num に 1 を加算
num++;
} else {
//それ以外は 変数 num を 1 にする
num = 1;
}
//loader_mc に pic○.swf をロード
loadMovie("pic" add num add ".swf", "loader_mc");
}
------------
===または======
携帯のダイヤルボタンを押して「次へ」「前へ」をさせる場合は,
見えないボタン(透明ボタン or ステージ外ボタン など)を用意して
そのボタン自体に例えば次のように書きます。
------------
//ボタン6 を押したときに実行
on (keyPress "6") {
// もし 変数num の値が 5 未満であれば
if (num<5) {
//num に 1 を加算
num++;
} else {
//それ以外は num を 1 にする
num = 1;
}
//loader_mc に pic○.swf をロード
loadMovie("pic" add num add ".swf", "loader_mc");
}
//ボタン4 を押したときに実行
on (keyPress "4") {
//もし 変数num の値が 1 より大きければ
if (num>1) {
//num から 1 を減算
num--;
} else {
//それ以外は num を 5 にする
num = 5;
}
//loader_mc に pic○.swf をロード
loadMovie("pic" add num add ".swf", "loader_mc");
}
------------
他にも場合はあるので1つに定めることはできませんが
大まかな例は上のようになります。
loadMovie は,元来 SWF(ムービー) をロードするためだけの関数だったのでロードムービーなのです。
※注
・ロードするSWFも Flash Lite 1.1 用SWFにパブリッシュする必要があります
・メインのSWFは「インタラクティブ再生」させる必要があります
投稿日時 - 2010-03-18 18:50:50
お礼
度々ありがとうございます。
教えていただいたことを参考にさせていただいて作りました!
無事に完成しました。ありがとうございます。
一応依頼者に渡してみましたが、
やはり外部データから読み込みたいとの事でした。
1.1だとそれは無理と告げるとバージョンを2.0と3.0に
あげても構わないとの事でした。
自分の力で一度作ってみます。
また不明な点が出てきたらご相談させて頂いても良いですか?
本当にありがとうございました。
投稿日時 - 2010-03-18 19:48:19
> やりたいことは、外部のテキストデータに書いた画像を
> 読み込み、その画像ごとにリンク先を替えたい。
何を書かれていらっしゃるのかよくわかりませんので,
私が解釈した内容を書きますよ。
やりたいことは
外部テキストデータに書いた画像ファイル名の画像を
Flash 内にロード&表示し
その 画像を「選択&Enter(いわゆるクリック)」したときに,
その画像対応のページを表示させたい(その画像対応のページにジャンプさせたい)。
ということでしょうか?
以上であるとすると,結論は 「無理です」 です。
Flash 4 がどうしたこうしたという問題ではありません。
携帯では ワンクリック→ワンロード なんです。
まずボタンか何かを選択して決定し,
そこでやっと 外部テキストファイル のみがFlashにロードできます。
つまり 外部テキスト を読み込むには
loadVariables または loadVariablesNum 関数を使いますが,
その loadVariables または loadVariablesNum を実行させるときに,
必ず少なくとも1つの on(○○) ハンドラが必要になるわけです。
さて,そこまでで外部テキストファイルが Flash 内にロードできたとします。
次にそのテキスト内で指定した画像をロードする場合,
1つの画像をロードするに付き1つのクリック動作が必要になります。
したがって,
> 5~8秒程度で画像が切り替わるスライドショーにしたい。
は,全く無理になります。
なおかつ,
Flash Lite 1.1 では JPEG などはロードできません。
これは Flash 4 とかかわっている話で,
JPEG が ロードできるようになったのは Flash Player 6 以降,
オーサリングで言うならば,Flash MX 以降です。
それまではどうしていたかというと,
JPEG などを Flashオーサリング に読み込んで,
SWF をパブリッシュし,そのパブリッシュした SWF を ロード していたのです。
ちなみに,上で書いた JPEG とは,
プログレッシブ JPEG ではなく普通の JPEG (非プログレッシブJPEG)のことで,
プログレッシブJPEG や 静止GIF や PNG がロード表示できるようになったのは Flash Player 8 以降,
オーサリングで言うならば,Flash Professional 8 または Flash Basic 8 以降です。
結論…「その依頼は断った方が良いですよ。」
なお,そのようなしくみを実現している Flash もあります。
それはどのようにしているのかと言うと,
サーバサイド言語 で,動的に,そういう画像を埋め込んだ SWF をパブリッシュする。
という方法です。
簡単に言えば,
リクエスト通りの画像を埋め込んだSWFをサーバで作成してしまうという方法です。
そういう全く別次元のことをするのであれば話は別ですが,
それほどするようなこともなければ,
そのことは黙っておいて単に 「無理です」 と答える方が良いです。
単に 「無理です」 と答える場合は見なくて良いですが,
こんなように検索すると何かヒントが出てくるかもしれません。
http://www.google.co.jp/search?hl=ja&source=hp&q=Flash+Lite+1.1+SWF+%E7%94%9F%E6%88%90
投稿日時 - 2010-03-17 20:05:06
お礼
BlurFiltan様
細かくご説明頂きありがとうございます。
質問内容がわかりづらく、申し訳ございませんでした。
BlurFiltan様の解釈で問題ありません。
ありがとうございます。
1.1だと画像を読み込むのも出来ないのであれば
もうどうしようもないですね。
依頼者側が簡単に写真を追加していきたいというのが希望で、なにか
良い方法があればと思って考えていました。
たとえば、リンクの件はあきらめてもらうとして
画像をテキストデータからではなく、
直接フォルダに保存してある○○.jpgなどを読み込ませることは可能でしょうか。
(○○は連番などにして”次へ”などのボタンで切り替わる仕組みで)
サーバ側で・・・と言うのは私の力ではどうにも出来ないところなので
お断りしようかと思っています。
投稿日時 - 2010-03-17 21:38:47