読み込みに関するコマンド |
このページでは以下のことを解説しています
[GoToNetMovie]
[PreLoadNetThing]
どうしても大きなサイズのムービーを表示しないとイケナイ場合があります。そのような時でも、アクセスするユーザーの為に心がける必要があります。 |
最近いろいろなページを見ますが、その中にはいきなり200Kもあるムービーを読み始めて、その読み込みの間じ〜っと待っておかないといけないページをときどき見ますね。あの間って結構ヒマでしょ?
確かに私もそう思います。だから雑誌とかを読んだりしているけど、プロバイダの料金を無駄に使っているみたいで……。なんだかむかつきますね。
そうならない為にできるだけ軽くムービーを創るのは常識なのですが、大作などでどうしてもサイズを小さくできない場合がありますが、そのような場合には小分けにするとか、待ち時間を楽しくする方法を採用しましょう。
ではどうやればいいのでしょうか?
GoToNetMovieというコマンドを使いますよ。
ええと……go to Net Movieっと……あれ?エラーが出てしまいますよ?
お約束ありがとう。これはGoToNetMovieと一続きのコマンドなんですよ。shockwaveになってから加わった新しいコマンドです。Directorにはインターネットの通信の機能がなかったんですが、shockwaveに加工したときに使えるようになるコマンドです。
なるほど。じゃ、これをチェックするときにはDirector上ではできないってことかしら?
残念ながらそういうことになりますね。さて、使い方ですが、以下の様に使ってください。
PreLoadNetThing "(なるべくフルパスの)ムービーの名前"
これを書き込むことによって以下の動作が行われます。
(1)ムービーの読み込み開始
(2)読み込みが完了するまでは、現在のムービーを再生し続ける
(3)読み込みが完了次第ムービーが再生される
ただし、ムービーの画面サイズの変更はできません。古いムービーのサイズを継承します。ではそれを使ってみたサンプルです。
このムービーは「軽い」ムービーと「重い」ムービーをいったりしたりするように設計してあります。重いムービーの方は手あたりしだいに詰め込んで圧縮もなにもかけていないので、大きさは68Kです。私としてはかなり大きい容量のムービーですね。なんか罪悪感を感じますよ(笑)。
ふ〜ん、こんな感じになるのですね。これはボタンを押したら読み込みを開始するようにしていますが、たとえばon startMovieのハンドラに書き込むと、自動的に重いムービーを読むように設定できるんですね。これは応用範囲が広そうですね。
容量が32Kをこえたら使ってみるといいでしょうね。ページの好感度もあがりますよ。
あのね、豪さん、確か読み込みのコマンドはPreLoadNetThingってのがあると聞いたことがあるんだけど、それとの違いはどこにあるのかな?
PreLoadNetThingとは文字どおり「ネット上のものを前もって読み込む」というコマンドなんですよ。悪く言えば「読み込むだけ」なんですね。つまり読み込みが完了しても、それを表示する能力まではないんですよ。たとえば
on startmovie
PreLoadNetThing "http://www.hus.../welcome.dcr"
end
と記述したとしますね。でもこれでは表示されないのです。その読み込まれたデーターはすべてキャッシュと言うところに格納されます。各自のマシンの中にある「押入れ」みたいなものですね。そのデータを蓄えるだけでなくて、画面表示させるためにそのデータを含んだページを表示させるのです。
うぅぅ……めんどくさいなぁ……。結局のところ後何をすればいいのですか?
つまり「読み込みが完了したら、吐き出すページにジャンプするようにする」のです。ややこしい作業なのでまとめてみました。
●その読み込んだムービーを表示させる(吐き出させる)ページを作る。 読み込んだものを表示させるべきページにリンクを張ります。重いデータはキャッシュに保管されているので、瞬時に表示することができます。
●リンクを設定する
shockwaveムービーからのリンクの指定方法のコマンドはGoToNetPage "urlアドレス"という書式です。
尚、この命令はDirector上ではスクリプトエラーが起きます。shockwaveのdcrファイルになってはじめて実行される「拡張Lingo」です。
●そのページにいつ飛ぶかを判断するスクリプトを書く
読み込みが完了したらジャンプするようにする必要があるので、読み込み状態を返すコマンドNetDone()を使用します。書式は以下のようになります。
on exitframethen
if NetDone()
GoToNetPage "吐き出させるページのURLアドレス"
end if
end exitframe
NetDone()コマンドはちょっと特殊な表記方法なので、注意して使って下さい。
ううむ、本当にめんどくさいなぁ。そもそもこの命令を使う必要はあるのですか?
PreLoadNetThingはGoToNetMovieと違って、何でも読み込みができるのです。画像ファイルでもテキストでも何でもいけます。ですから以下のように結論づけることができるでしょう。
ムービーを読み込むのならGoTONetMovie
それ以外を読み込むのならPreLoadNetThingを用いてページで表示
うわーめんどくさい。でも、その苦労はきっとユーザーの方の快適さにつながるからガマンしましょう。
そうですね。その心がけが大事ですね。さて、一応一通りの基礎的な事を説明してきましたが、だいぶわかってきましたか?
はい、あとは作り手のアイディアと心がけ次第でshockwaveの世界は拡がっていきますね!!
期待してますよ!