代码不适用于倒带动态添加的视频

code is not working for rewinding a dynamically added video

我已经从 as3 库中动态加载了一个 flv 视频。现在我想倒带它,但代码不起作用。显示:

Scene 1, Layer 'Layer 1', Frame 1, Line 64 1119: Access of possibly undefined property playheadTime through a reference with static type flash.media:Video..

这是我的代码。我找不到问题所在。任何帮助都会很棒。

stage.displayState = StageDisplayState.FULL_SCREEN; 
import flash.media.Video;
 import fl.video.FLVPlayback;
var connection:NetConnection = new NetConnection();
var stream:NetStream;
var Speed:Number;
var SeekPoint:Number;
var Rewind:Boolean ;
var  Forward:Boolean ;
var video:Video = new Video(1130,510);
var metaObj:Object = new Object();

function onMetaData(data:Object):void
{

}

connection.connect(null);
stream = new NetStream(connection);
stream.client = metaObj;
metaObj.onMetaData = onMetaData;
video.attachNetStream(stream);
addChild(video);
stream.play("Sequence 01_1.flv");
video.x = 0;
video.y = 0;
rw.addEventListener(MouseEvent.MOUSE_DOWN,  rw_CLICK);
function rw_CLICK(event:MouseEvent):void 
{

        trace("StartForward Called");
        Speed = Speed +10;
        trace("SeekSpeed: " + Speed);
        SeekPoint = video.playheadTime;
        trace("Initial PlayHead Time: " + SeekPoint);
        video.stop();
        Rewind = false
        Forward= true;
        //video.addEventListener(Event.FRAME_CONSTRUCTED,OnConstructFrame);

    }


function OnConstructFrame(event:Event):void
    {

        if(Forward)
        {
            if(video.playheadTime >= SeekPoint)
            {
                trace("Before Seek Cal.: " + SeekPoint);
                SeekPoint = SeekPoint + Speed;
                trace("After Seek Cal.: " + SeekPoint);
                video.seek(SeekPoint);
               /* if(SeekPoint > ftime)
                {
                    Forward=false;
                  //  video.removeEventListener(Event.FRAME_CONSTRUCTED,OnExitFrame);
                }*/
            }

        }
    }

VideoClass 没有 属性 playheadTime。 您必须获得 NetStream-Object 的 time-属性。 此外,没有 seek 方法。两者都仅在 FLVPlayback-Component 中可用。 你应该使用 play(name, time)

如果您正在使用 Netstream 和“视频”,您可以使用这个:

...
if(stream.time >= SeekPoint) //in seconds
{
     trace("Before Seek Cal.: " + SeekPoint);
     SeekPoint = SeekPoint + Speed;
     trace("After Seek Cal.: " + SeekPoint);
     stream.play("Sequence 01_1.flv", SeekPoint);
     /* if(SeekPoint > ftime)
     {
          Forward=false;
          //  video.removeEventListener(Event.FRAME_CONSTRUCTED,OnExitFrame);
     }*/
}
...

问候安德烈