首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载外部vdo时请求属性onMetaData的错误消息,但是,vdo仍然可以播放

加载外部vdo时请求属性onMetaData的错误消息,但是,vdo仍然可以播放
EN

Stack Overflow用户
提问于 2013-11-21 09:39:12
回答 1查看 2.6K关注 0票数 3

我试图找出如何删除消息错误,以及是什么原因造成的。我创建了一个用于加载外部vdo以在Flash上播放的代码。在面板中编写它很好,所以我尝试将它作为一个类来编写。我移动了所有的代码,并将其放入一个类中,它也运行良好。但是,错误消息出现了!即使文件可以正确播放。错误说:

错误#2044:未处理的AsyncErrorEvent:。text=Error #2095: flash.net.NetStream无法调用回调onMetaData。error=ReferenceError:错误#1069:在vdoloader上找不到属性onMetaData,并且没有默认值。vdoloader()

这是我的密码

代码语言:javascript
复制
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。”

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-24 03:52:32

这正是--您不是通过实现函数onMetaData来处理元数据事件的。您的播放器的客户端是"this",所以您的类中应该有一个公共函数onMetaData。

拜托,请用大写的首字母作为你的名字.

编辑:在您的代码中,您将this指定为netstream的客户端(源代码:US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html):

将客户端属性与事件处理程序关联,以接收数据对象。使用NetStream.client属性分配一个对象来调用特定的数据处理函数。分配给NetStream.client属性的对象可以侦听以下数据点: onCuePoint()、onImageData()、onMetaData()、onPlayStatus()、onSeekPoint()、onTextData()和onXMPData()。在这些函数中编写过程,以处理回放期间从流返回的数据对象。有关更多信息,请参见NetStream.client属性。

因此,现在只需要创建一个函数onMetaData(md:Object),它应该处理同一个类中的事件,即vdoloader (您将this作为客户端传递给的<=as)。您可以检查文档如何执行:US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#event:onMetaData。我认为Lee在他的网站http://www.gotoandlearn.com上有一篇关于这个的教程。(我不确定,但如果你有兴趣的话,我想值得一试)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20117257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档