代码不适用于倒带动态添加的视频
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);
}*/
}
}
}
Video
Class 没有 属性 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);
}*/
}
...
问候安德烈
我已经从 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);
}*/
}
}
}
Video
Class 没有 属性 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);
}*/
}
...
问候安德烈