【问题标题】:AS3 video loop doesn't work on Mac OSAS3 视频循环在 Mac OS 上不起作用
【发布时间】:2016-04-25 13:00:48
【问题描述】:

由于这里无法解释的复杂原因,我突然不得不开始使用 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); 
  } 
}
;

【问题讨论】:

    标签: macos actionscript-3 flash video


    【解决方案1】:

    如果我是你,我会验证你是否真的在 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)
        }
    }
    

    【讨论】:

    • 感谢您的回复!不知道该怎么做,但我会朝这个方向调查。
    • 更新了一些进一步的信息。希望这足以解释我的意思。
    猜你喜欢
    • 2015-09-24
    • 2022-10-12
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 2015-01-03
    • 1970-01-01
    相关资源
    最近更新 更多