由于原因太复杂而无法解释,我突然不得不开始使用AS3制作Flash广告。
我是一名设计师,我对编码语言知之甚少,不得不修补已找到的代码以使工作正常。因此,我尝试制作一个带有循环视频的简单Flash广告,这种广告在Windows机器上运行良好,但在Mac机器上运行不正常(视频播放一次,不循环播放)。 知道我的非常简单的代码有什么问题吗?
var fl_NC:NetConnection = new NetConnection();
fl_NC.connect(null);
var fl_NS:NetStream = new NetStream(fl_NC);
fl_NS.client = {};
var fl_Vid:Video = new Video( 300, 600 );
fl_Vid.attachNetStream(fl_NS);
addChild(fl_Vid);
var theVid = "http://www.glenat.com/dyn/glenat/upload/flv/grand angle_VE4.mp4";
fl_NS.play(theVid);
fl_NS.addEventListener(NetStatusEvent.NET_STATUS, NCListener);
function NCListener(e:NetStatusEvent){
if (e.info.code == "NetStream.Buffer.Empty") {
fl_NS.play(theVid);
}
}
;
答案 0 :(得分:0)
如果我是你,我会确认您确实在Mac OS上接收了缓冲区空事件。如果您是,并且仍然无法正常工作,请尝试ns.seek(0)。
<强>更新强>
play()
应该真正重命名为load()
,因为它的目的是从文件中读取。 seek()
会将播放头移回您指定的时间索引,因此0
会将其置于开头。
通过在函数开头添加trace(e)
,您将知道您的函数是否被调用,以及它接收的数据类型。
尝试使用以下内容替换NCListener
...
function NCListener(e:NetStatusEvent) {
trace(e);
if (e.info.code == "NetStream.Buffer.Empty") {
fl_NS.play(theVid);
fl_NS.seek(0)
}
}