如何在Haxe中创建actionscript对象

时间:2012-03-26 19:14:43

标签: object video actionscript haxe

我正在Haxe中创建一个actionscript视频播放器并避免asyncError我正在尝试创建一个自定义对象。我怎么做是Haxe?

client属性指定调用回调方法的对象。默认对象是正在创建的NetStream对象。如果将client属性设置为另一个对象,则将在该另一个对象上调用回调方法。

这是我的代码。

public function new() 
{
    super();
    trace("video");
    //initialize net stream
    nc = new NetConnection();
    nc.connect(null);
    ns = new NetStream(nc);
    buffer_time = 2;
    ns.bufferTime = buffer_time;

    //Add video to stage
    myVideo = new flash.media.Video(640, 360);
    addChild(myVideo);

    //Add callback method for listeing on NetStream meta data
    client = new Dynamic();
    ns.client = client;
    client.onMetaData = metaDataHandler;


}

public function playVideo(url:String)
{
    urlName = new String(url);
    myVideo.attachNetStream(ns);
    ns.play(urlName);
    ns.addEventListener(NetStatusEvent.NET_STATUS, netstat);
}

function netstat(stats:NetStatusEvent)
{
    trace(stats.info.code);
}

function metaDataHandler(infoObject:Dynamic) 
{
    myVideo.width = infoObject.width;
    myVideo.height = infoObject.height;
}

3 个答案:

答案 0 :(得分:1)

您应该这样做:

client : Dynamic = {};

答案 1 :(得分:0)

忘记客户端对象;没有必要播放FLV或处理异​​步错误。为此,只需为AsyncErrorEvent.ASYNC_ERROR NetStream 添加一个监听器。

我建议你为 NetConnection 添加一个监听器,为NetStatusEvent.NET_STATUS添加 NetStream ,然后在监听器中找出event.info.code

您应该首先看到来自 NetConnection 的字符串“NetConnection.Connect.Success”;当您通过 NetStream 播放视频时,如果加载FLV时出现问题,您应该会看到“NetStream.Play.StreamNotFound”。否则你应该看到“NetStream.Play.Start”。

除非您逐步流式传输FLV,否则在文件加载完成之前您可能看不到任何视频。如果电影文件很长,这可以解释为什么你的程序运行没有错误但没有播放电影。您可以在线跟踪问题时使用小型测试FLV文件。

(ActionScript的FLV播放API很奇怪,haXe的文档很简陋,所以你理所当然地感到沮丧。)

答案 2 :(得分:0)