NEWS

2016.09.02 「Photoshopとpapervision3dでテクスチャ付3Dを作成する(4)」を更新しました。

  • Web creators

ActionScript

一度見たムービーをスキップする

概要

Flashをサイトのトップページなどプロモション的に設置することは多いですが、再生時間が長いと2回目以降の再生は煩わしいことがあります。
長いムービーの場合、スキップボタンで再生をカットすることは可能ですが自動的にムービーをスキップする方法をご紹介します。

サンプル解説

ムービーは再生中かがわかるように文字と再生バーを設置しています。
最後にリプレイボタンが表示されれば終了です。
そのままサイトを再読み込み、または再アクセスすればムービーは自動的にスキップしてリプレイボタンが表示されます。
一度再生してから、次に表示されるまで5時間以上の間がある場合は再度ムービーが流れます。

作成法

(1) シンボルの作成
  ・再生後にリプレイするボタンを作成します。
  ・その他、ムービーで使用するパーツを作成します。
シンボルの作成
 
(2) シンボルをステージに配置
  ・ActionScriptを設置するレイヤー「Action」を作成します。
  ・再生フラグを設置するレイヤー「Flag」を作成します。
  ・その他、ムービーで使用するシンボルを設置するレイヤーを作成します。
  ・ムービーの再生を長くするため、フレームを120まで増やします。
  ・1フレーム目から120目までシンボルのトゥイーンなどで動きをつけます。
  (ここでは再生バーが表示されるようにしています。)
ステージへ設置
 
(3) ステージにActionScriptを設定
  ・1フレーム目だけにActionScriptを設定します。
ActionScriptの設定
  ※ActionScriptをサイトからそのままコピーした場合、改行やスペースを一度削除しなければシンタックスエラーが出ます。
 
01
02
03
04
05
06
07
08
skipMovieTime = SharedObject.getLocal("skipMovie");
nowDate = new Date();
nowtime = nowDate.getTime();
beforeTime = skipMovieTime.data.count + 18000000;
resultTime = nowtime - beforeTime;
if(resultTime < 0){
 _root.gotoAndStop("VIEW");
}
   
  ・119フレーム目にActionScriptを設定します。
ActionScriptの設定
 
01
02
_root.skipMovieTime.data.count = _root.nowDate.getTime();
_root.skipMovieTime.flush();
   
  ・120フレーム目にActionScriptを設定します。
 
01
stop();
 
(4) ステージにフラグを設定
  ・1フレーム目から119フレーム目まで「START」と設定します。
  ・120フレーム目に「VIEW」と設定します。
   
(5) リプレイボタンの配置とActionScriptの設定
  ・リプレイボタンを120フレームだけに配置します。
  ・ステージに配置したシンボルを選択してActionScriptを設定します。
 
01
02
03
04
05
on (press) {
 _root.skipMovieTime = SharedObject.getLocal("skipMovie");
 _root.skipMovieTime.clear();
 _root.gotoAndPlay("START");
}

解説

このFlashは「SharedObjectクラス」を利用してCookieのような役割をさせています。
これを利用すると閲覧者の端末に情報が保存されます。
保存先はWindowsなら「\Documents and Settings\ユーザ名\
Application Data\Macromedia\Flash Player\#SharedObjects\」になります。

ムービーがスキップする仕掛けは、この保存ファイルに表示されたときの時刻を保存し、再表示したときにある程度の時間内であればムービーをスキップするようにしています。
この保存ファイルは119フレームに設置したActionScriptで生成されるため、ムービー途中で違うリンクに飛んだりブラウザを落とすと保存されません。
1フレーム目に設定したActionScriptで保存ファイルを呼び出し、もし初めての再生か以前の再生から5時間以上過ぎていればムービーのスキップは行いません。

最後に、リプレイボタンに設定したActionScriptは保存ファイルが存在する限りムービーはスキップし続けるのでファイルを削除するようにしています。

ページ上部へ