我正在试图弄清楚如何删除邮件错误以及导致错误的原因。 我创建了一个代码,用于加载外部vdo以在Flash上播放。在Action Script面板中编写它很好,所以我尝试将它作为一个类。我移动了所有代码并将其放在一个类中,它也可以正常工作。但是,出现错误消息!即使文件可以正常播放。 错误说:
错误#2044:未处理的AsyncErrorEvent:。 text =错误#2095:flash.net.NetStream无法调用onMetaData回调。 error = ReferenceError:错误#1069:在vdoloader上找不到属性onMetaData,并且没有默认值。 在vdoloader()
这是我的代码
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。”
答案 0 :(得分:2)
正是如此 - 您没有通过实现onMetaData函数来处理元数据事件。你的播放器的客户端是“这个”,所以你应该在你的类中有一个onMetaData的公共函数。
请噢,请使用大写的第一个字母作为您的班级名字......
编辑:
在您的代码中,您将this
指定为netstream的客户端(来源:http://help.adobe.com/en_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
作为客户端时)。您可以查看文档如何执行此操作:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/NetStream.html#event:onMetaData。我认为 Lee Brimelow在他的网站上有一个关于这个的教程 - http://www.gotoandlearn.com。 (我不确定这个,但我想如果你有兴趣的话,值得一试)