我试图弄清楚如何清除消息错误以及造成此错误的原因。
我创建了一个代码,用于加载要在Flash上​​播放的外部vdo。在“ ActionScript ”面板中进行编码很不错,因此我尝试将其作为一个类。我移动了所有代码并将其放在一个类中,它也可以正常工作。但是,错误消息出现了!即使文件可以正确播放。
错误提示:



这是我的代码

package  {

import flash.display.Sprite;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.media.Video;

public class vdoloader extends Sprite {
    var video;
    var nc;
    var ns;

    public function vdoloader() {
        // constructor code
        nc = new NetConnection();
        nc.connect(null);
        ns = new NetStream(nc);
        ns.client=this;
        video = new Video(550,400);
        addChild (video);
        video.attachNetStream(ns);
        ns.play("westler.flv");
    }
}
}

然后,我尝试在vdoloader()中放入一些内容,内容类似于:“预期为1,得到0。”

最佳答案

正是这样-您没有通过实现onMetaData函数来处理元数据事件。播放器的客户端是“this”,因此您应该在类中具有onMetaData公共(public)函数。

请哦,请为您的类(class)名称使用大写的首字母...

编辑:
在您的代码中,您将this分配为netstream的客户端(来源:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html):



因此,现在您只需要创建一个onMetaData(md:Object)函数即可处理同一类中的事件,即vdoloader(this作为客户端传递时)。您可以检查文档如何操作:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#event:onMetaData。我认为Lee Brimelow在他的站点http://www.gotoandlearn.com上有关于此的教程。 (对此我不确定,但是如果您有兴趣,我想值得尝试)

关于actionscript-3 - 错误消息,要求在加载外部vdo BUT时要求属性onMetaData,vdo仍可以播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20117257/

10-09 01:42