Flash: показывать текстовый слой в определенное время во флэш-видео - PullRequest
0 голосов
/ 22 ноября 2011

Я бы хотел сыграть загрузку / воспроизведение одного фильма и показывать текст в определенное время. В фильме есть сцена, где показана доска. Я хотел бы показать текст на доске, когда он появится. Вот почему я хотел бы узнать, когда вы достигли определенной точки.

Также о загрузке видео. Я прочитал там несколько способов загрузки фильма. Какой, по вашему мнению, лучший способ загрузить его в этой ситуации.

1) Это можно сделать с помощью компонента FLVPlayer или другим способом? Если вы посоветуете, как мне загружать и воспроизводить видео, это было бы здорово.

2) Как показать текст в определенное время. Есть ли функция, которую я могу использовать.

Я очень ценю, что вы нашли время ответить на это.

Заранее спасибо.

Gosa

1 Ответ

0 голосов
/ 30 ноября 2011

Если вы можете кодировать ключевые точки в вашем видео, еще лучше, но вы также можете программно добавлять ключевые точки к видео, используя метод addASCuePoint () компонента FLVPlayback. (Вы можете свернуть свой собственный компонент видео, чтобы справиться с ними, но компонент FLVPlayback отнимает большую часть работы).

Я бы предложил прочитать справку по FLVPlayback, но в целом должно работать что-то вроде следующего кода AS3:

import fl.video.*;

function flvReady(evt:VideoEvent):void {
    // Assuming the cuepoint should occur 12.2 seconds into the video. Unless the cues
    // are embedded in the video, you'll need to time this.
    flvPlayer.addASCuePoint(12.2, "boardShown");
}

function flvCuePoint(evt:MetadataEvent):void {

    if (evt.info.name == "boardShown")  {   
        // Here, trigger your titles/text/whatever fancy actions you want to trigger. For example, assuming a text field named
        // textLabel exists on stage, you might...
        textLabel.text = "Look! It's that board I talked about!";
    }
}

var flvPlayer:FLVPlayback = new FLVPlayback();
flvPlayer.addEventListener(VideoEvent.READY, flvReady);
flvPlayer.addEventListener(MetadataEvent.CUE_POINT, flvCuePoint);
flvPlayer.source = "/path/to/video/of/board.flv";

addChild(flvPlayer);
...