如何在 Haxe 中创建动作脚本对象
Posted
技术标签:
【中文标题】如何在 Haxe 中创建动作脚本对象【英文标题】:How to create an actionscript Object in Haxe 【发布时间】:2012-04-10 07:40:26 【问题描述】:我正在 Haxe 中创建一个动作脚本视频播放器,为了避免 asyncError,我正在尝试创建一个自定义对象。 Haxe 我该怎么做?
客户端属性指定调用回调方法的对象。默认对象是正在创建的 NetStream 对象。如果将客户端属性设置为另一个对象,则会在该对象上调用回调方法。
这是我的代码。
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;
【问题讨论】:
您尝试过使用 吗?如客户端 = ; 【参考方案1】:你应该这样做:
client : Dynamic = ;
【讨论】:
谢谢!你有没有在 haxe 中播放 .flv 的例子? 我最终使用了 ns.client = this;我现在没有收到任何错误,但似乎仍然无法播放视频。有教程吗?【参考方案2】:忘记客户端对象;播放 FLV 或处理异步错误不是必需的。为此,只需为 AsyncErrorEvent.ASYNC_ERROR
添加一个侦听器到 NetStream。
我建议你为NetStatusEvent.NET_STATUS
的NetConnection和NetStream添加一个监听器,然后在监听器中追踪event.info.code
的值。
您应该首先看到来自 NetConnection 的字符串“NetConnection.Connect.Success”;当您通过 NetStream 播放视频时,如果加载 FLV 出现问题,您应该会看到“NetStream.Play.StreamNotFound”。否则,您应该会看到“NetStream.Play.Start”。
除非您逐步流式传输 FLV,否则在文件完成加载之前,您可能看不到任何视频正在播放。如果电影文件很长,这可以解释为什么您的程序运行没有错误但没有播放电影。在跟踪问题时,您可能希望使用在线提供的小型测试 FLV 文件。
(ActionScript 的 FLV 播放 API 很奇怪,而 haXe 的文档很简陋,所以你有理由感到沮丧。)
【讨论】:
【参考方案3】:这可能有用...http://code.google.com/p/zpartan/source/browse/zpartan/media/ 你可以看到它正在使用 http://code.google.com/p/jigsawx/
【讨论】:
以上是关于如何在 Haxe 中创建动作脚本对象的主要内容,如果未能解决你的问题,请参考以下文章