【发布时间】:2012-10-30 19:42:00
【问题描述】:
我在 AS3 中有用于视频连接的标准 NetStream:
代码:
public class VideoInit extends MovieClip
{
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.NetStatusEvent;
public var video:Video;
public var nc:NetConnection;
public var ns:NetStream;
public var meta:Object;
public var _duration; // <----- the variable
public function VideoInit()
{
video = new Video(480,270);
addChild(video);
nc = new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
meta = new Object();
ns.client = meta;
video.attachNetStream(ns);
ns.play("video.f4v");
meta = new Object();
meta.onMetaData = function(meta:Object) // <---- the method
{
_duration = meta.duration
}
ns.client = meta;
}
现在,每次执行 onMetaData 方法时,变量 _duration 都会存储该值,但在调试器步骤离开该方法之后,_duration 值会重新设置为未识别。 我试图通过推送值来解决 Array 的问题,但同样的事情发生了,Array 重置。有什么问题吗?
编辑:
任何存储持续时间值的对象都会在 onMetaData 完成后立即销毁。我如何实现它并不重要。
【问题讨论】:
-
尝试在持续时间内使用 Setter,只有当它是有效数字时才会更改它。我认为的问题是 onMetaData 被调用但元对象无效。
标签: actionscript-3 flash video actionscript