AS3で動画再生終了を検知する

どうもiyamaです。

今日はちょっと前回予告もしました NetStreamを利用して動画を再生した場合、 再生終了を検知する方法です。

環境

  • ActionScript3.0
  • Flash CS3~CS5
Main.as
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import flash.events.Event;
import flash.net.NetConnection;
import flash.net.NetStream;

// ns = NetStream、stream = (ファイル名) のとき
ns.play(stream);
stage.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);

/**
 * onEnterFrameHandler
 * @param    event
 */
private function onEnterFrameHandler(event:Event):void {
    // duration = 動画尺(ミリ秒)とする
    if ((Math.ceil(ns.time * 10) / 10) >= (Math.floor(duration * 10) / 10)) {
        // 再生終了!!
    }
}

結構はしょっている部分多いです。 NetConnectionとNetStreamがある程度分かっている前提です。 ここで大事なのは2つ。

「Math.ceil」と「Math.floor」

  • Math.ceil(value) : valueを切り上げ
  • Math.floor(value): valueを切り下げ

ふむ。 冷静になって考えると、 *10して/10する必要あるのかな?とか思ったり思わなかったり。笑。 *10するのはわかるけど。

以上です。 細かいことは、また改めて考えます。